Connecting to an AMQP message broker The following examples show how to connect to an AMQP broker using two different authentication methods. Using X509 certificate XSEDE RabbitMQ supports SASL authentication mechanism, “EXTERNAL” as a plugin for validating certificates. In Java, you can present your credentials to the RabbitMQ server using a PKCS#12 keystore file. If you have a PEM encoded certificate file (e.g., cert.pem) and private key (key.pem), you can create a keystore file using the following command: $ openssl pkcs12 -export -in cert.pem -inkey key.pem -out keycert.p12 private static Connection ConnectAmqp_X509() throws Exception { String host = "info1.dyn.xsede.org"; int port = 5671; String virtual_host="xsede"; String userid = "XSEDE_PORTAL_USERNAME"; ConnectionFactory factory = new ConnectionFactory(); factory.setSaslConfig(DefaultSaslConfig.EXTERNAL); factory.setUsername(userid); factory.setVirtualHost(virtual_host); factory.setHost(host); factory.setPort(port); char[] keyPassphrase = "MySecretPassword".toCharArray(); KeyStore ks = KeyStore.getInstance("PKCS12"); ks.load(new FileInputStream("/path/to/client/keycert.p12"), keyPassphrase); KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); kmf.init(ks, keyPassphrase); SSLContext c = SSLContext.getInstance("TLSv1.1"); c.init(kmf.getKeyManagers(), null, null); factory.useSslProtocol(c); //Using ssl connection return factory.newConnection(); } In Python, def ConnectAmqp_X509(self): host = 'info1.dyn.xsede.org' port = 5671 virtualhost = 'xsede' user_id = 'XSEDE_PORTAL_USERNAME' ssl_opts = {'ca_certs': None, 'keyfile': '/path/to/key.pem', 'certfile': '/path/to/cert.pem'} return amqp.Connection(host='%s:%s' % (host, port), virtual_host=virtualhost, login_method='EXTERNAL', userid=user_id, ssl=ssl_opts) Using username and password The below code snippet shows how to connect to a RabbitMQ server over SSL without validating the server certificate, and without presenting any client certificate. You need username and password provided by XSEDE administrators for logging on AMQP server. In Java, private static Connection ConnectAmqp_UserPass() throws Exception { String host = "info1.dyn.xsede.org"; int port = 5671; String virtual_host="xsede"; String userid = "AMQP_USERID"; String password = "AMQP_PASSWORD"; ConnectionFactory factory = new ConnectionFactory(); factory.setUsername(userid); factory.setPassword(password); factory.setVirtualHost(virtual_host); factory.setHost(host); factory.setPort(port); factory.useSslProtocol(); //Using ssl connection return factory.newConnection(); } In Python, def ConnectAmqp_UserPass(self): host = 'info1.dyn.xsede.org' port = 5671 virtualhost = 'xsede'; user_id = 'AMQP_USERID' user_password = 'AMQP_PASSWORD' ssl_opts = {'ca_certs': None} return amqp.Connection(host='%s:%s' % (host, port), virtual_host=virtualhost, userid=user_id, password=user_password, ssl=ssl_opts)