Configure keystores, truststores, passwords, and certificates to enable SSL communication, and Web Services Security.
Encryption strength
The IBM® Integration Bus
Java™ runtime environment (JRE) is provided with strong but limited strength encryption. If you cannot import keys into keystores, limited strength encryption might be the cause. Either start ikeyman by using the strmqikm command, or download unrestricted jurisdiction policy files from IBM developer kits: Security information.
Important: Your country of origin might have restrictions on the import, possession, use, or re-export to another country, of encryption software. Before you download or use the unrestricted policy files, you must check the laws of your country. Check its regulations and its policies on the import, possession, use, and re-export of encryption software, to determine whether it is permitted. Note that when you apply a fix pack to an existing IBM Integration Bus installation, the JVM is overwritten, including any updated policy set files. These policy set files must be restored before you restart the broker.
IBM Integration Bus currently supports up to 4096 bit keys. Larger keys require more CPU resources for encryption and decryption.
The keystore file contains the personal certificate for the broker or for the integration server. You can have only one personal certificate in the keystore. You can store signer certificates in the same file, or create a separate file, which is known as a truststore.
Use self-signed certificates only for testing SSL, not in production.
gsk7cmd -cert -create
-db keystore_name
[-pw password]
-label cert_label
-dn "distinguished_name"
For example:
gsk7cmd -cert -create
-db myBrokerKeystore.jks
-label MyCert
-dn "CN=MyBroker.Server,O=IBM,OU=ISSW,L=Hursley,C=GB"
A password is required to access this key database.
Please enter a password:
Import a personal certificate from a certificate authority for production use.
gsk7cmd -cert -import
-db pkcs12_file_name
[-pw pkcs12_password]
-label label
-type pkcs12
-target keystore_name
[-target_pw keystore_password]
If you are going to use the keystore for inbound https connections, then ensure that you always specify a target_pw, and that it matches the password required to access the key database (keystore). For example:
gsk7cmd -cert -import
-db SOAPListenerCertificate.p12
-label soaplistener
-type pkcs12
-target myBrokerKeystore.jks
-target_pw myBrokerKpass
A password is required to access this key database.
Please enter a password:
gsk7cmd -cert -details
-db keystore_name
[-pw password]
-label label
For example:
gsk7cmd -cert -details
-db myKeyStore.jks
-label MyCert
A password is required to access this key database.
Please enter a password:
Label: MyCert
Key Size: 1024
Version: X509 V3
Serial Number: 4A D7 39 1F
Issued By: MyBroker.Server
ISSW
IBM
Hursley, GB
Subject: MyBroker.Server
ISSW
IBM
Hursley, GB
Valid From: 15 October 2009 16:00:47 o'clock BST To: 15 October 2010 16:00:47 o'
clock BST
Fingerprint: 98:5D:C4:70:A0:28:84:72:FB:F6:3A:D2:D2:F5:EE:8D:30:33:87:82
Signature Algorithm: 1.2.840.113549.1.1.4
Trust Status: enabled
Generate a copy of a self-signed certificate that you can import as a trusted (or signer certificate) into a truststore file. Use this procedure only for testing, not production.
gsk7cmd -cert -extract
-db keystore_name
-pw keystore_passwd
-label label
-target file_name
[-format ascii | binary]
For example:
gsk7cmd -cert -extract
-db myBrokerKeystore.jks
-pw myKeyPass
-label MyCert
-target MyCert.arm
-format ascii
You can then view the certificate
in a text editor, such as Notepad: notepad MyCert.arm
-----BEGIN CERTIFICATE-----
MIICIzCCAYygAwIBAgIEStc5HzANBgkqhkiG9w0BAQQFADBWMQswCQYDVQQGEwJHQjEQMA4GA1UE
BxMHSHVyc2xleTEMMAoGA1UEChMDSUJNMQ0wCwYDVQQLEwRJU1NXMRgwFgYDVQQDEw9NeUJyb2tl
ci5TZXJ2ZXIwHhcNMDkxMDE1MTUwMDQ3WhcNMTAxMDE1MTUwMDQ3WjBWMQswCQYDVQQGEwJHQjEQ
MA4GA1UEBxMHSHVyc2xleTEMMAoGA1UEChMDSUJNMQ0wCwYDVQQLEwRJU1NXMRgwFgYDVQQDEw9N
eUJyb2tlci5TZXJ2ZXIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMwkK5kFLwC29YsHLXlf
hd0CgqFeytHlI0sZesdi8hEPXKsOzs3OQta2b0GZyUbBkh4tNeUHNWE9o7Hx2/SfziPQRKUw908R
F/6FPaHGezRkkaLJGX3uEhjt/2+n5tOJGytnKWaWJTpzdmZ79c0XjFvO83q3yXPYjKzq8rS1iVBf
AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAQEjpvZkjRcg3AHqY4RWbSMtXVWFFyoHSbjymR8IdURoQ
DCGZ2jsv3kxQLADaCXOBYgohGJAHS7PzkQoHUCiHR0kusyuAt1MNYbhEcs+BYAzvsSz1ay4oiqCw
Qs3aeNLVOb9c1RyzbuKYZl0uX59GAfGVLvyk6vQ/g7wPVL4TVgc=
-----END CERTIFICATE-----
Add a signer certificate to the truststore of a broker or integration server.
The following steps show how to add an extracted certificate as signer certificate to the truststore file. Adding the broker self-signed certificate to a broker or integration server truststore enables request nodes (HTTP or SOAP) to send test messages to input nodes (HTTP or SOAP) when the flows are running on the broker or integration server.
gsk7cmd -cert -add
-db truststore_name
[-pw password]
-label label
-file file_name
-format [ascii | binary]
For example:
gsk7cmd -cert -add
-db myBrokerTruststore.jks
-label CACert
-file TRUSTEDPublicCerticate.arm
-format ascii
You can view details of
the certificate:
gsk7cmd -cert -details -db myBrokerTruststore.jks -label CACert
A password is required to access this key database.
Please enter a password:
Label: CACert
Key Size: 1024
Version: X509 V3
Serial Number: 49 49 23 1B
Issued By: VSR1BK
ISSW
IBM
GB
Subject: VSR1BK
ISSW
IBM
GB
Valid From: 17 December 2008 16:04:43 o'clock GMT To: 17 December 2009 16:04:43
o'clock GMT
Fingerprint: CB:39:E7:D8:1D:C0:00:A1:3D:B1:97:69:7A:A7:77:19:6D:09:C2:A7
Signature Algorithm: 1.2.840.113549.1.1.4
Trust Status: enabled
gsk7cmd -cert -list
-db keystore_name
For example:
gsk7cmd -cert -list
-db myBrokerKeystore.jks
A password is required to access this key database.
Please enter a password:
Certificates in database: myBrokerKeystore.jks
verisign class 1 public primary certification authority - g3
verisign class 4 public primary certification authority - g3
verisign class 1 public primary certification authority - g2
verisign class 4 public primary certification authority - g2
verisign class 2 public primary certification authority
entrust.net global client certification authority
rsa secure server certification authority
verisign class 2 public primary certification authority - g3
verisign class 2 public primary certification authority - g2
verisign class 3 secure server ca
verisign class 3 public primary certification authority
verisign class 3 public primary certification authority - g3
verisign class 3 public primary certification authority - g2
thawte premium server ca
verisign class 1 public primary certification authority
entrust.net global secure server certification authority
thawte personal basic ca
thawte personal premium ca
thawte personal freemail ca
verisign international server ca - class 3
thawte server ca
entrust.net certification authority (2048)
cacert
entrust.net client certification authority
entrust.net secure server certification authority
soaplistener
mycert
Define the broker registry properties that identify the location, name, and password of the keystore and truststore files.
mqsistart broker_name
mqsireportproperties broker_name
-o BrokerRegistry
–r
mqsichangeproperties broker_name
-o BrokerRegistry
-n brokerKeystoreFile
-v install_dir\MQSI\9.0\MyBrokerKeystore.jks
mqsichangeproperties broker_name
-o BrokerRegistry
-n brokerTruststoreFile
-v install_dir\MQSI\9.0\MyBrokerTruststore.jks
mqsistop broker_name
mqsisetdbparms broker_name
-n brokerKeystore::password
-u ignore
-p keystore_pass
mqsisetdbparms broker_name
-n brokerTruststore::password
-u ignore
-p truststore_pass
mqsistart broker_name
mqsireportproperties broker_name
-o BrokerRegistry
–r
Define the properties for the broker-wide HTTP listener to identify the location, name, and password of the keystore and truststore files.
mqsistart broker_name
mqsireportproperties broker_name
-b httplistener
-o HTTPSConnector
-a
mqsichangeproperties broker_name
-b httplistener
-o HTTPSConnector
-n keystoreFile
-v install_dir\MQSI\9.0\MyBrokerKeystore.jks
mqsichangeproperties broker_name
-b httplistener
-o HTTPSConnector
-n truststoreFile
-v install_dir\MQSI\9.0\MyBrokerTruststore.jks
mqsichangeproperties broker_name
-b httplistener
-o HTTPSConnector
-n keystorePass
-v keystore_pass
mqsichangeproperties broker_name
-b httplistener
-o HTTPSConnector
-n truststorePass
-v truststore_pass
mqsireportproperties broker_name
-b httplistener
-o HTTPSConnector
-a
Define the ComIbmJVMManager properties for the required integration server to identify the location, name, and password of the keystore and truststore files.
mqsistart broker_name
mqsireportproperties broker_name
-e exec_grp_name
-o ComIbmJVMManager
-r
mqsichangeproperties broker_name
-e exec_grp_name
-o ComIbmJVMManager
-n keystoreFile
-v install_dir\MQSI\9.0\MyExecGrpKeystore.jks
mqsichangeproperties broker_name
-e exec_grp_name
-o ComIbmJVMManager
-n keystorePass
-v exec_grp_nameKeystore::password
mqsichangeproperties broker_name
-e exec_grp_name
-o ComIbmJVMManager
-n truststoreFile
-v install_dir\MQSI\9.0\MyExecGrpTruststore.jks
mqsichangeproperties broker_name
-e exec_grp_name
-o ComIbmJVMManager
-n truststorePass
-v exec_grp_nameTruststore::password
mqsistop broker_name
mqsisetdbparms broker_name
-n exec_grp_nameKeystore::password
-u ignore
-p keystore_pass
mqsisetdbparms broker_name
-n exec_grp_nameTruststore::password
-u ignore
-p truststore_pass
mqsistart broker_name
mqsireportproperties broker_name
-e exec_grp_name
-o ComIbmJVMManager
-r
For information about cipher-suite requirements
(such as the cryptographic algorithm and corresponding key lengths),
see the Java Secure Socket Extension (JSSE) IBMJSSE2 Provider reference guide.