You can secure RMI communications by transmitting them over SSL. The Oracle Commerce Platform includes a class, atg.net.ssl.SSLRMISocketFactory, for creating secure sockets for RMI, and a Nucleus component that is an instance of this class, /atg/dynamo/service/socket/
SSLRMISocketFactory
. To enable RMI over SSL, set the RMISocketFactory property of the /atg/dynamo/server/RmiInitialization component to point to the SSLRMISocketFactory component:

RMISocketFactory=/atg/dynamo/service/socket/SSLRMISocketFactory

To use RMI over SSL, configure public and private keys and wrap the public key in a self-signed certificate. Use the keytool utility to generate a new private key and public key, and wrap the public key into a new self-signed certificate.

For more information about SSL keys and certificates, and for documentation about the Java Secure Socket Extension (JSSE) APIs, see the Oracle Web site.

Enabling Client Authentication

Whenever an SSL session begins, a handshake occurs, which enables server authentication to the client. By default, the client does not authenticate, however, you can configure mandatory client authentication by setting the needClientAuth property to true in the /atg/dynamo/security/
BasicSSLConfiguration
.

Using the ACC with RMI over SSL

If you have configured RMI to work over SSL, the ACC requires additional information to connect using SSL. First, configure the BasicSSLConfiguration file to connect using SSL:

Once you have configured the BasicSSLConfiguration file, modify the startClient script for your server as described below:

Server-Side Authentication

To enable the ACC to perform one-way authentication, provide the name of the trustStore and the trustStorePassowrd arguments in the startClient script:

- Djavax.net.ssl.trustStore=trustStore_location
- Djavax.net.ssl.trustStorePassword=
trustStore_password
- Drmi.socket.factory.class=atg.applauncher.AppSSLRMISocketFactory

Client-Server Authentication

To enable the ACC to perform two-way authentication, provide the name of the trustStore, trustStorePassowrd, keyStore and the keyStorePassowrd arguments in the startClient script:

- Djavax.net.ssl.trustStore=trustStore_location
- Djavax.net.ssl.trustStorePassword=
trustStore_password
- Drmi.socket.factory.class=atg.applauncher.AppSSLRMISocketFactory
- Djavax.net.ssl.keyStore=
keyStore_location
- Djavax.net.ssl.keyStorePassword=
keyStore_password

Copyright © 1997, 2016 Oracle and/or its affiliates. All rights reserved. Legal Notices