1

嗨,我正在使用 tomcat 6 作为网络服务器。我在同一端口的tomcat上安装了两个webbapplication。说 App1 和 App2。App1 连接到 App2 。然后 App2 再次使用 jessionid 连接到 App1(所以 app2 发送的 url 是http://localhost/App1;jessionid=sessionidOfAp11)只要我在 http 上它就可以正常工作。但是,一旦我移至 https,App2 就无法使用相同的 url 连接到 App1。另一个有趣的事实是,如果我在 Brower 上键入相同的 url,它会连接到 App1。我不明白这里有什么奥秘?

编辑:-这是我得到的确切错误

 Caused by: sun.security.validator.ValidatorException: PKIX path building failed:     sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid  certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
... 53 more
 Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)

回答

伙计们感谢您的回答。Alon with ramesh answer 我还必须做 http://www.coderanch.com/t/134384/Security/Getting-error-No-subject-alternative建议的东西。

4

2 回答 2

1

因为 App1 使用 https 连接到 App2。App2 的证书应该在运行 App1 的 VM 的信任库中

请参阅此处以了解如何将证书添加到密钥库。

您可以使用这些系统属性设置信任库

    -Djavax.net.ssl.trustStore="C:/test/truststore"  
    -Djavax.net.ssl.trustStorePassword="test".

此外,当客户端和服务器在那里时,您不必通过 https 进行通信

  • 同一个虚拟机
  • 同一台机器
  • 专用网络
于 2012-03-05T12:49:20.047 回答
0

似乎您需要从 {tomcat_home}/bin 文件夹中删除本机 tomcat 库(Windows 下的 tcnative-1.dll,可能是 *nix 下的 tcnative-1.so)。如果本地库在类路径中,Tomcat 使用 APR。在此处阅读有关配置 SSL的更多信息

于 2012-03-05T12:42:15.443 回答