SSL / TLS Certificates
Eurex Clearing interfaces are using TLS encryption and certificate based client authentication to ensure the security. Both the public keys of the AMQP broker as well as the client certificate have to be provided to the client. Without them, the clients will be unable to connect / authenticate.
Client certificate
The guide for generating the client certificates is part of the “Volume A: Connectivity” document. Java clients require the client certificate to be provided in the Java Keystore format (JKS), where it is encrypted and protected by password. When using the keytool utility to generate the certificate, it will be created already in the JKS format. In case other tools were used to generate the certificate, it has to be converted first.
Following command can be used to convert certificate from PKCS12 format to the JKS format4:
$ keytool -importkeystore -srckeystore
For example:
$ keytool -importkeystore -srckeystore ABCFR_ABCFRALMMACC1.p12 -srcstoretype PKCS12 -destkeystore ABCFR_ABCFRALMMACC1.keystore
Enter destination keystore password:
Re-enter new password:
Enter source keystore password:
Entry for alias carex_testcalmmacc1 successfully imported.
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled
During the conversion, new password to the JKS certificate as well as the password for the existing KPCS12 file has to be entered.
A certificate which is ready to be used by a Java client might look very similar to this:
$ keytool -list -v -keystore ABCFR_ABCFRALMMACC1.keystore
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: abcfr_abcfralmmacc1
Creation date: Feb 10, 2015
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN= ABCFR_ABCFRALMMACC1
Issuer: CN= ABCFR_ABCFRALMMACC1
Serial number: 54bce281
Valid from: Mon Jan 19 11:54:57 CET 2015 until: Fri Jan 19 11:54:57 CET 2018
Certificate fingerprints:
MD5: AA:22:FD:83:43:26:8B:79:30:CA:74:6D:31:7B:BA:72
SHA1: FE:46:CD:84:86:49:34:15:7F:1D:D8:A5:B0:BE:CA:F6:19:C2:A6:3B
SHA256: 40:8B:A1:1F:68:58:90:0D:B2:1D:4C:F0:77:2D:CD:39:E3:73:62:B9:FA:CF:BF:EA:A5:08:08:F2:86:4F:8A:70
Signature algorithm name: SHA512withRSA
Version: 3
*******************************************
*******************************************
The keystore file needs to be provided to the Java client together with the password.
Broker public keys
When connecting to the broker, the Member application should verify the identity of the AMQP broker in order to protect against man in the middle attacks. The Eurex Clearing AMQP brokers use certificates signed by a trusted certification authority (CA). The public keys of Eurex Clearing interfaces can be used to verify their identity. Each interface has its own unique keys for simulation and production environments.
The public key(s) should be stored in a file called “truststore”. The truststore is stored in Java Keystore (JKS) format, where it is encrypted and protected by password. The truststore file needs to be provided to the Java client together with the password. The truststore can contain multiple public keys.
The public keys of the AMQP broker are available on the website of Eurex Clearing under the following path:
Eurex Clearing FIXML Interface: http://www.eurexclearing.com Technology Eurex Clearing classic system / Eurex Clearing’s C7 System documentation Eurex Clearing Interfaces
Eurex Clearing FpML Interface: https://member.eurexclearing.com Clearing Resources Releases EurexOTC Clear Interest Rate Swaps -> IRS Release 3.0 Interfaces Eurex Clearing FpML Interface
Eurex Clearing Margin Calculator Interface: https://member.eurexclearing.com Clearing Resources Releases EurexOTC Clear Interest Rate Swaps -> IRS Release 3.0 Interfaces Eurex Clearing FpML Interface
They can be easily loaded into a new truststore using import functionality of the keytool utility.5
keytool -importcert -file
-alias simulation -keystore
Enter keystore password: <Password>
Owner: CN=ecag-fixml-simu1.deutsche-boerse.com
Issuer: CN=VeriSign Class 3 Secure Server CA - G3
Serial number: ad5500000002b7f9b8f4f31234af
Valid from: Tue Apr 15 18:35:26 CEST 2012 until: Sun Apr 14 18:35:26 CEST 2014
Certificate fingerprints:
MD5: 8F:AE:D7:14:CD:37:3F:3B:E8:E7:F2:42:F3:14:BE:4E
SHA1: 94:52:92:97:7C:0A:D7:23:11:E6:43:69:B0:1F:C5:1B:9F:C2:D3:9B
Signature algorithm name: SHA1withRSA
Version: 3Trust this certificate? [no]: yes
Certificate was added to keystore
The
keytool -list -keystore
Enter keystore password: <Password>
Keystore-Typ: jks
Keystore-Provider: SUN
Your keystore contains 2 entries
simulation, 28.04.2011, trustedCertEntry,
Certificate fingerprint (MD5): 86:58:B9:E1:83:80:E6:68:63:7E:92:EA:30:4A:D5:91
production, 28.04.2011, trustedCertEntry,
Certificate fingerprint (MD5): 86:63:B9:EA:83:80:E6:6F:6C:AE:92:EB:40:A2:31:53
SSL / TLS debugging
In case of problems with the SSL / TLS connection, the applications using Apache Qpid Java API have a SSL debugging mode. This mode can be activated using the system property
-Djavax.net.debug=ssl
4. Some of the Java clients are able to use the PKCS12 format directly ↩
5. See “Volume A: Connectivity” for more details about the keytool utility. ↩