Glossary:

Full Glossary

Nirvana Concepts - Client SSL Configuration

This Section describes how to use SSL in your Nirvana client applications. Nirvana supports various wire protocols including SSL enabled sockets and HTTPS. The example programs contained in the Nirvana package will all work with SSL enabled on the realm server.

This guide explains client SSL configuration on Java. Guides for other languages are available:

Once you have created an SSL enabled interface for your realm you need to ensure that your client application passes the required System properties used by your jsse enabled JVM. The Nirvana download contains some example Java key store files that will be used in this example.

If you would like to add your own client certificates please see our developers guide.

The first such keystore is the client keystore, called client.jks, which can be found in your installation directory, under the /server/Nirvana/bin directory. The second is the CA keystore called nirvanacacerts.jks, which is again located in the /server/Nirvana/bin directory

Using the example keystores, the following system properties are required by the Nirvana sample apps and must be specified in the command line as follows:

-DCKEYSTORE=%INSTALLDIR%\client\Nirvana\bin\client.jks
-DCKEYSTOREPASSWD=password
-DCAKEYSTORE=%INSTALLDIR%\client\Nirvana\bin\nirvanacacerts.jks
-DCAKEYSTOREPASSWD=password

where:

CKEYSTORE is the client keystore location

CKEYSTOREPASSWD is the password for the client keystore

CAKEYSTORE is the CA keystore file location

CAKEYSTOREPASSWD is password for the CA keystore

The above system properties are used by the Nirvana sample apps, but are mapped to system properties required by a jsse enabled JVM by the utility program 'com.pcbsys.foundation.utils.fEnvironment', which all sample applications use. If you do not wish to use this program to perform the mapping between Nirvana system properties and those required by the JVM, you can specify the SSL properties directly. To do this in your own applications, the following system properties must be set:

-Djavax.net.ssl.keyStore=%INSTALLDIR%\client\Nirvana\bin\client.jks
-Djavax.net.ssl.keyStorePassword=password
-Djavax.net.ssl.trustStore=%INSTALLDIR%\client\Nirvana\bin\nirvanacacerts.jks
-Djavax.net.ssl.trustStorePassword=password

where :

javax.net.ssl.keyStore is the client keystore location

javax.net.ssl.keyStorePassword is the password for the client keystore

javax.net.ssl.trustStore is the CA keystore file location

javax.net.ssl.trustStorePassword is password for the CA keystore

As well as the above system properties, if you are intending to use https, both the Nirvana sample apps and your own applications will require the following system property to be passed in the command line:

-Djava.protocol.handler.pkgs="com.sun.net.ssl.internal.www.protocol"

As well as the above, the RNAME used by your client application must correspond to the correct type of SSL interface, and the correct hostname and port that was configured earlier.

JMS Clients

In JMS, the RNAME corresponds to a JNDI reference. The example JMSAdmin application can be used to create a sample file based JNDI context, where the RNAME is specified as the content of the TopicConnectionFactoryFactory reference. Once your SSL interface is created you can simply change this value in your JNDI context to be the RNAME you require your JMS applications to use.