RSA Authentication Manager 8.1 SDK JAVA Admin Sample Code Reports an SSL Handshake Exception
2 years ago
Originally Published: 2016-05-24
Article Number
000050350
Applies To
RSA Product Set : SecurID
RSA Product/Service Type : RSA Authentication Manager SDK
RSA Version/Condition: 8.1 Service Pack 1
Platform : Windows
Platform (Other) : JAVA

 
Issue
RSA Authentication Manager 8.1 SDK - Java admin sample code reports an error when executed:
<24/05/2016 11:06:46 AM AEST> <Info> <Security> <BEA-090905> <Disabling CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true> 
<24/05/2016 11:06:46 AM AEST> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG to FIPS186PRNG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true> 
<24/05/2016 11:06:46 AM AEST> <Info> <Security> <BEA-090908> <Using default WebLogic SSL Hostname Verifier implementation.> 
ERROR, GOBLIN,,,,Attempting downgraded connection protocol to EJB/2.1.
ERROR, GOBLIN,,,,Unable to connect to downgraded EJB/2.1 command server.null
ERROR, GOBLIN,,,,Attempting downgraded connection protocol to EJB/2.1.
ERROR, GOBLIN,,,,Unable to connect to downgraded EJB/2.1 command server.null
ERROR, GOBLIN,,,,Unable to connect to command server for command execution.null
ERROR, GOBLIN,,,,Attempting downgraded connection protocol to EJB/2.1.
ERROR, GOBLIN,,,,Unable to connect to downgraded EJB/2.1 command server.null
ERROR, GOBLIN,,,,Attempting downgraded connection protocol to EJB/2.1.
ERROR: com.rsa.common.SystemException: Failed to connect with command server
	at com.rsa.command.EJBRemoteTargetBase.executeCommand(EJBRemoteTargetBase.java:163)
	at com.rsa.command.DelegatingCommandTarget.executeCommand(DelegatingCommandTarget.java:66)
	at com.rsa.command.TargetableCommand.execute(TargetableCommand.java:297)
	at com.rsa.authn.LoginCommand.execute(LoginCommand.java:611)
	at com.rsa.authn.AuthenticatedTargetImpl.login(AuthenticatedTargetImpl.java:158)
	at com.rsa.command.ConnectionFactory$ConnectionImpl.connect(ConnectionFactory.java:758)
	at com.rsa.command.ConnectionFactory$ConnectionImpl.connect(ConnectionFactory.java:740)
	at com.rsa.samples.admin.AdminAPIDemos.main(AdminAPIDemos.java:1307)
Caused by: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://app81p.csau.ap.rsa.net:7002: Destination unreachable; nested exception is: 
	javax.net.ssl.SSLHandshakeException: General SSLEngine problem; No available router to destination]
	at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:40)
	at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:767)
	at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:366)
	at weblogic.jndi.Environment.getContext(Environment.java:315)
	at weblogic.jndi.Environment.getContext(Environment.java:285)
	at weblogic.jndi.Environment.createInitialContext(Environment.java:208)
	at weblogic.jndi.Environment.getInitialContext(Environment.java:192)
	at weblogic.jndi.Environment.getInitialContext(Environment.java:170)
	at com.rsa.ims.command.weblogic.WebLogicInitialContextFactory.getInitialContext(WebLogicInitialContextFactory.java:146)
	at com.rsa.command.EJBRemoteTarget$LookupEjb30.run(EJBRemoteTarget.java:552)
	at com.rsa.command.EJBRemoteTarget$LookupEjb30.run(EJBRemoteTarget.java:1)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
	at weblogic.security.Security.runAs(Security.java:61)
	at com.rsa.command.WebLogicSecurityContextWrapper.runAs(WebLogicSecurityContextWrapper.java:51)
	at com.rsa.command.EJBRemoteTarget.internalGetCommandServer(EJBRemoteTarget.java:369)
	at com.rsa.command.EJBRemoteTarget.refreshCachedCommandServer(EJBRemoteTarget.java:350)
	at com.rsa.command.EJBRemoteTarget.getCommandServer(EJBRemoteTarget.java:295)
	at com.rsa.command.EJBRemoteTargetBase.executeCommand(EJBRemoteTargetBase.java:161)
	... 7 more
Caused by: java.net.ConnectException:
NOTE: GOBLIN is the name of the Windows platform running the admin sample code whereas app81p.csau.ap.rsa.net is the authentication manager primary instance name
 
Cause
The SSL Handshake Exception was generated as the JAVA admin sample code failed to connect to the authentication manager instance as no server root certificate was available to validate the SSL handshake.
Resolution
The admin sample code uses SSL EJB connections, and so specifies a value for the -Dweblogic.security.SSL.trustedCAKeyStore SSL argument which references the JKS container holding the server root certificate.

Check the admin sample code is using the -Dweblogic.security.SSL.trustedCAKeyStore SSL argument and that the JKS container being referenced contains the server root certificate of the authentication manager instance for the SSL connection.