BookmarkSubscribeRSS Feed
jei
Quartz | Level 8 jei
Quartz | Level 8

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).

 

Web Infra.png

 

May we know how we can resolve this? Thank you!

 

Regards.

 

 

 

 

 

 

 

 

 

 

 

6 REPLIES 6
JuanS_OCS
Amethyst | Level 16

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,

jei
Quartz | Level 8 jei
Quartz | Level 8

Hi

 

 

JuanS_OCS
Amethyst | Level 16

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?

 

 

 

 

jei
Quartz | Level 8 jei
Quartz | Level 8

Hi,

 

This is the order of our registered certificates. May we know what is the proper order?

 

jks.png

 

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?

 

sarvesh
Fluorite | Level 6

Me also facing same problem can some one help..

JuanS_OCS
Amethyst | Level 16

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: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

Tips for filtering data sources in SAS Visual Analytics

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.

Discussion stats
  • 6 replies
  • 2682 views
  • 0 likes
  • 3 in conversation