CXF Trust Certificates

CXF Trust Certificates

Published: Saturday, 17 September 2016
java cxf

CXF config to add a trusted certificate

This is useful in cases where a server has been setup with a certificate that cannot be validated (e.g. it is a self-signed certificate).

This has been tested using CXF 3.1.7

The below config assumes you have a self-signed HTTPS test server that CXF will connect to as a client. The address of the server is https://192.168.33.33.

The name attribute contains a pattern which applies the config to any URLs used by CXF that match it.

<!-- automatically registered using name regexp -->
<http:conduit name="https://192.168.33.33/.*">
<http:tlsClientParameters disableCNCheck="true">
  <sec:trustManagers>
    <sec:keyStore type="JKS" password="password"
                  resource="/192.168.33.33.trust.jks"/>
  </sec:trustManagers>
</http:tlsClientParameters>
</http:conduit>

The trust keystore file can be generated by reading the certificate from the test server.

openssl s_client -showcerts -connect 192.168.33.33:443

Copy out the lines with BEGIN CERTIFICATE and END CERTIFICATE inclusive and place them in 192.168.33.33.cert. Then create the keystore file.

keytool.exe -import -trustcacerts -file 192.168.33.33.cert -keystore 192.168.33.33.jks

Use the password ‘password’, and answer ‘yes’ when asked whether to Trust this certificate.

References

CXF Client HTTP Transport (including SSL support).