Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 在Jelastic下修改受信任的CA_Ssl_Certificate_Cas_Ca_Jelastic - Fatal编程技术网

Ssl 在Jelastic下修改受信任的CA

Ssl 在Jelastic下修改受信任的CA,ssl,certificate,cas,ca,jelastic,Ssl,Certificate,Cas,Ca,Jelastic,我正试图在Jelast基础设施上建立一个基于CAS的echosystem。我能够使用所描述的示例web应用程序在同一个Tomcat7实例下设置服务器和客户机。我使用的SSL证书(CA和服务器)是自签名的 当请求受保护的资源时,webapp会正确地重定向到CAS登录页面,并且在服务器级别上可以很好地完成身份验证。但是,在返回流中,出现问题,浏览器显示异常,其根本原因如下: javax.net.ssl.SSLHandshakeException: sun.security.validator.Va

我正试图在Jelast基础设施上建立一个基于CAS的echosystem。我能够使用所描述的示例web应用程序在同一个Tomcat7实例下设置服务器和客户机。我使用的SSL证书(CA和服务器)是自签名的

当请求受保护的资源时,webapp会正确地重定向到CAS登录页面,并且在服务器级别上可以很好地完成身份验证。但是,在返回流中,出现问题,浏览器显示异常,其根本原因如下:

javax.net.ssl.SSLHandshakeException: 
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target
Caused by: sun.security.validator.ValidatorException: 
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target
这是因为CAS协议有一个附加的客户机-服务器验证对话,该对话在身份验证之后立即完成,并且在此对话期间,客户机必须再次信任服务器。这次,它不使用Tomcat的SSL设置,而是使用JVM的SSL设置(请参阅)

问题是,据我所知,在Jelastic上无法访问JAVA_HOME/jre/lib/security文件夹。 有什么提示吗?谢谢

更新:
我找到了解决办法。在Jelastic上,从v.1.8.5开始,Tomcat应用程序在JAVA_HOME/jre/lib/security文件夹上拥有写权限。这个IMHO开启了一个安全问题,但对于这个特定的案例来说是好的。我已经能够编写一个简单的servlet,将我的证书添加到JVM cacerts文件中,并且我已经解决了这个问题。

如果我理解正确,您需要在Tomcat和JVM本身上安装完全相同的证书吗

目前,jelasticssl安装选项仅将证书安装到应用程序/web服务器上(在本例中为Tomcat)。要在JVM上安装它,您需要向托管提供商寻求帮助

您还应该要求他们向开发团队提出此功能的功能请求;我想在默认情况下将证书安装到两个位置(Tomcat和JVM)会很有用吗


(您是否可以看到,在哪些情况下,为每个应用程序使用不同的证书会很有用?

是的,我需要在两个证书存储区(Tomcat和JVM)上使用相同的证书。但我已经找到了自己添加它的方法。(见我自己的回答)。谢谢。您还可以通过SFTP访问JAVA_HOME/jre/lib/security。