1> Signature verification failed because RSA key public exponent [3] is too small
RSA Keys with Public Exponent results in faulty signature verification on WLS. Having so low exponent is considered as security vulnerability; hence keys with low exponents are not supported by WLS. However if we need to bypass this behavior, we can use the following flag
-Dweblogic.security.SSL.allowSmallRSAExponent=true
2> java.security.InvalidKeyException: Illegal key size or default parameters
This exception is encountered while using strong encryption such as AES256. We can overcome this by downloading the unrestricted jurisdiction policy files from the JVM vendor site and place it under jre/lib/security folder.
3> NEW ALERT with Severity: FATAL, Type: 70
We get this alert when the the party communication with Weblogic Server is using a different version of SSL. We need to check the Handshake Message for the version of SSL used.
Using this flag to specify the version of SSL at WLS can be helpful.
-Dweblogic.security.SSL.protocolVersion=SSL3
NEW ALERT=with Severity: FATAL, Type: 42
This alert means that the certificate presented to WLS is not trusted. It can be resolved by importing the certificate into the trust store of Weblogic Server.
4> HANDSHAKE_FAILURE alert received from localhost – 127.0.0.1.
Most of the time its because of HOST NAME VERIFICATION.
Ignore Host Name Verification by setting this flag for Admin & Managed Server
-Dweblogic.security.SSL.ignoreHostnameVerification=true
And this in the startNodeManager.cmd
-Dweblogic.nodemanager.sslHostNameVerificationEnabled=false
Sometime when the root certificate does not meet the basic constraint, i.e. even when the issuer and the owner is the same, the criticality is not true
ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
CA:true
PathLen:0
]
To allow WLS to accept such certificates we need to pass on this flag
-Dweblogic.security.SSL.enforceConstraints=off
5> java.security.cert.CertificateParsingException: PKIX: Unsupported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11
The root problem is the Certicom SSL does not support SHA256 algorithm, which is required with the trusted certificates of “ttelesecglobalrootclass2ca” and “ttelesecglobalrootclass3ca”
A fix is included in JDK 1.6.0_13 wherein WLS just ignores these certificates.
6> Trust failure (68): CERT_CHAIN_INCOMPLETE
We encounter this issue when the Weblogic Server is not able to verify the chain of certificates presented to it. From the debug message we can check the certificates and check their order in the chain. We can also check the trust store for the root and intermediate certificates on the signing authority of the certificates.
We can use this to validate the certificate chain using
java utils.ValidateCertChain -jks alias storefilename [storePass]
7> java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
We need to specify the trustore as a JAVA OPTION
-Djavax.net.ssl.trustStore=samplecacerts
Or specify it as a System Property in the code
System.setProperty(“javax.net.ssl.trustStore”,”samplecacerts”);
System.setProperty(“javax.net.ssl.trustStorePassword”,”changeit”);
8> PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Pass the keystore in the java options.
-Dssl.debug=true -Dweblogic.security.TrustKeyStore=CustomTrust -Dweblogic.security.CustomTrustKeyStoreFileName=faisal_trust.jks -Djavax.net.ssl.keyStore=faisal.jks -Djavax.net.ssl.keyStorePassword=password -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dweblogic.security.SSL.ignoreHostnameVerification=true -Djava.protocol.handler.pkgs=weblogic.net
9> java.security.InvalidKeyException: Illegal key size
Try adding the following jvm option. This will make Weblogic Server FIPS 140-2 compliant.
-Dweblogic.security.SSL.nojce=true