Hi!
We are installing and configuring SAS 9.4 with applied certificates to use the HTTP Protocol using Secured Sockets. We already add the certificates in SAS Private JRE and in the SAS Deployment Manager. However, we are encountering the problem (kindly refer to the image below).
May we know how we can resolve this? Thank you!
Regards.
Hi,
the log probably will give more details, but I have a good guess that this is because the machine, where you are deploying SAS at that point of time, cannot resolve the sasva alias on the DNS server.
- Try to ping that alias, probably not answer.
- Why are you not using the fully quallified hostname/alias in your SAS deployment? The results are generally better.
- Ensure you have the short and long alias in your DNS server and you have flushed your DNS cache on the SAS servers.
- Optionally and beware it is not a best practice, you can register those in your hosts file,
Hi @JuanS_OCS,
- We are using the fully qualified hostname in pur SAS deployment.
- We also registered the hostname in our DNS server and flushed DNS in SAS server.
We are using a wildcard certificate. Is this can be a problem?
Well, I think it is always better a named certificate, but I worked sometimes with wildcards and they work also, as long as the full path of the certificate is registered and in proper order (any certificate, not only wildcard ones).
Ar your logs giving any extra information?
Hi,
This is the order of our registered certificates. May we know what is the proper order?
And these is what the log said:
C:\sas94\sashome\SASWebInfrastructurePlatform\9.4\Config\Deployment\Content\Templates\letterhead
[loadTemplates] javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS name matching sasva found.
[loadTemplates] at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
[loadTemplates] at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1904)
[loadTemplates] at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279)
[loadTemplates] at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:273)
[loadTemplates] at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1446)
[loadTemplates] at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209)
[loadTemplates] at sun.security.ssl.Handshaker.processLoop(Handshaker.java:901)
[loadTemplates] at sun.security.ssl.Handshaker.process_record(Handshaker.java:837)
[loadTemplates] at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1023)
[loadTemplates] at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
[loadTemplates] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
[loadTemplates] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
[loadTemplates] at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
[loadTemplates] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.jav...)
[loadTemplates] at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
[loadTemplates] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[loadTemplates] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[loadTemplates] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[loadTemplates] at java.lang.reflect.Method.invoke(Method.java:606)
[loadTemplates] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:95)
[loadTemplates] at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:599)
[loadTemplates] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:904)
[loadTemplates] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:740)
[loadTemplates] at org.codehaus.groovy.runtime.InvokerHelper.invokePojoMethod(InvokerHelper.java:761)
[loadTemplates] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:749)
[loadTemplates] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:167)
[loadTemplates] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethod0(ScriptBytecodeAdapter.java:195)
[loadTemplates] at scriptdef_loadTemplates.getConnection(scriptdef_loadTemplates:190)
[loadTemplates] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[loadTemplates] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[loadTemplates] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[loadTemplates] at java.lang.reflect.Method.invoke(Method.java:606)
[loadTemplates] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:95)
[loadTemplates] at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke(MetaClassHelper.java:599)
[loadTemplates] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:904)
[loadTemplates] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:77)
[loadTemplates] at scriptdef_loadTemplates.run(scriptdef_loadTemplates:94)
[loadTemplates] at groovy.lang.GroovyShell.evaluate(GroovyShell.java:459)
[loadTemplates] at groovy.lang.GroovyShell.evaluate(GroovyShell.java:400)
[loadTemplates] at org.codehaus.groovy.bsf.GroovyEngine.exec(GroovyEngine.java:108)
[loadTemplates] at org.apache.bsf.BSFManager$6.run(BSFManager.java:493)
[loadTemplates] at java.security.AccessController.doPrivileged(Native Method)
[loadTemplates] at org.apache.bsf.BSFManager.exec(BSFManager.java:491)
[loadTemplates] at org.apache.tools.ant.util.optional.ScriptRunner.executeScript(ScriptRunner.java:103)
[loadTemplates] at org.apache.tools.ant.taskdefs.optional.script.ScriptDef.executeScript(ScriptDef.java:347)
[loadTemplates] at org.apache.tools.ant.taskdefs.optional.script.ScriptDefBase.execute(ScriptDefBase.java:50)
[loadTemplates] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[loadTemplates] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
[loadTemplates] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[loadTemplates] at java.lang.reflect.Method.invoke(Method.java:606)
[loadTemplates] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[loadTemplates] at org.apache.tools.ant.Task.perform(Task.java:348)
[loadTemplates] at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:62)
[loadTemplates] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[loadTemplates] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
[loadTemplates] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[loadTemplates] at java.lang.reflect.Method.invoke(Method.java:606)
[loadTemplates] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[loadTemplates] at org.apache.tools.ant.Task.perform(Task.java:348)
[loadTemplates] at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:391)
[loadTemplates] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[loadTemplates] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
[loadTemplates] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[loadTemplates] at java.lang.reflect.Method.invoke(Method.java:606)
[loadTemplates] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[loadTemplates] at org.apache.tools.ant.Task.perform(Task.java:348)
[loadTemplates] at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:62)
[loadTemplates] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[loadTemplates] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
[loadTemplates] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[loadTemplates] at java.lang.reflect.Method.invoke(Method.java:606)
[loadTemplates] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[loadTemplates] at org.apache.tools.ant.Task.perform(Task.java:348)
[loadTemplates] at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:391)
[loadTemplates] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[loadTemplates] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
[loadTemplates] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[loadTemplates] at java.lang.reflect.Method.invoke(Method.java:606)
[loadTemplates] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[loadTemplates] at org.apache.tools.ant.Task.perform(Task.java:348)
[loadTemplates] at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:62)
[loadTemplates] at net.sf.antcontrib.logic.IfTask.execute(IfTask.java:197)
[loadTemplates] at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
[loadTemplates] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[loadTemplates] at java.lang.reflect.Method.invoke(Method.java:606)
[loadTemplates] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[loadTemplates] at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:134)
[loadTemplates] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[loadTemplates] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
[loadTemplates] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[loadTemplates] at java.lang.reflect.Method.invoke(Method.java:606)
[loadTemplates] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[loadTemplates] at org.apache.tools.ant.Task.perform(Task.java:348)
[loadTemplates] at org.apache.tools.ant.Target.execute(Target.java:357)
[loadTemplates] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[loadTemplates] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
[loadTemplates] at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
[loadTemplates] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[loadTemplates] at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
[loadTemplates] at org.apache.tools.ant.Main.runBuild(Main.java:698)
[loadTemplates] at org.apache.tools.ant.Main.startAnt(Main.java:199)
[loadTemplates] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[loadTemplates] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
[loadTemplates] Caused by: java.security.cert.CertificateException: No subject alternative DNS name matching sasva found.
[loadTemplates] at sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:191)
[loadTemplates] at sun.security.util.HostnameChecker.match(HostnameChecker.java:93)
[loadTemplates] at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:347)
[loadTemplates] at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:203)
[loadTemplates] at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
[loadTemplates] at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1428)
[loadTemplates] ... 98 more
[echo] Error while loading templates java.security.cert.CertificateException: No subject alternative DNS name matching sasva found.
[echo] Return Code: -1
[propertyfile] Updating property file: C:\sas94\config\Lev1\Logs\Configure\webinfpltfm_config_status.properties
[propertyfile] Updating property file: C:\sas94\config\Lev1\Logs\Configure\webinfpltfm_config_status.properties
[echo] Load Content failed for: SAS Web Infrastructure Platform Error while loading templates java.security.cert.CertificateException: No subject alternative DNS name matching sasva found.
Does the name of the certificate should be the same with the hostname?
Me also facing same problem can some one help..
Hello @sarvesh,
I would recommend you to open a new topic, then you can mark what is your solution, once you found it.
For this issue, please open your certificate and send us to what name/alias is the certificate issued, and the alternate names. Then, please let us know to what FQDN (fully qualified domain name) and short names is your deployment configured to.
I expect a mismatch on those.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
See how to use one filter for multiple data sources by mapping your data from SAS’ Alexandria McCall.
Find more tutorials on the SAS Users YouTube channel.