qpidd is provided by Mozilla's Network Security Services Library (SSL), through the ssl.co module. This module is installed by default in MRG Messaging.
qpiddssl.so module. This module is installed and loaded by default in MRG Messaging. To enable the module, you will need to specify the location of the database containing the certificate and key to use. This can be done using the ssl-cert-db option.
certutil tool. More information can be found on the Mozilla website, including tutorials on setting up and testing SSL connections.
qpidd. Alternatively, create a file containing the password and direct qpidd at the file location using the ssl-cert-password-file option.
$ qpidd --load-module /libs/ssl.so
--ssl-use-export-policyssl-cert-password-file PATH--ssl-cert-db PATH--ssl-cert-name NAME--ssl-port NAMEssl-require-client-authentication--require-encryption broker option. This will cause qpidd to only accept encrypted connections.
sslconnector.so module. This module is installed and loaded by default in MRG Messaging. To enable the module, you will need to specify the location of the database containing the certificate and key to use. This can be done using the ssl-cert-db option in /etc/qpid/qpidc.conf or using the environment variable QPID_SSL_CERT_DB.
ssl-require-client-authentication is active on qpidd, the clients certificate will also need to be verified. To do this, use --ssl-cert-name and, if necessary, --ssl-cert-password-file.
ssl as the value for the protocol setting in the ConnectionSettings instance passed to Connection::open().
-Djavax.net.ssl.keyStore=/home/bob/ssl_test/keystore.jks -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=/home/bob/ssl_test/certstore.jks -Djavax.net.ssl.trustStorePassword=password
-Djavax.net.ssl.trustStore=/home/bob/ssl_test/certstore.jks -Djavax.net.ssl.trustStorePassword=password
connectSSL method instead of the usual connect method for the client interface. The string for the connectSSL signature is:
public void connectSSL(String host, int port, String virtualHost, String username, String password, String serverName, String certPath, bool rejectUntrusted)For these values:
host: Host name on which a Qpid broker is deployed
port: Qpid broker port
virtualHost: Qpid cirtual host name
username: Username
password: Password
serverName: Name of the SSL server
certPath: Path to the X509 certificate to be used when the broker requires client authentication
rejectUnstrusted: When true the connection will not be established if the broker is not trusted - the server certificate must be added in your truststore.
| SSL Client Options for C++ clients | |
|---|---|
--ssl-use-export-policy
| Use NSS export policy |
--ssl-cert-password-file
| File containing password to use for accessing certificate database |
--ssl-cert-db
| Path to directory containing certificate database |
--ssl-cert-name
| Name of the certificate to use |