2013-05-15 47 views
0

我有一个Web应用程序,它尝试点击https网址。我有一组4个证书,我使用一个普通的文件导入使用密钥工具在tomcat 7中添加SSL证书

keytool -import -v -alias a_base64 -trustcacerts -file a_Base64.cer -keystore testcacerts 
keytool -import -v -alias b_base64 -trustcacerts -file b_base64.cer -keystore testcacerts 
keytool -import -v -alias c_base64 -trustcacerts -file c_Base64.cer -keystore testcacerts 
keytool -import -v -alias d_base64 -trustcacerts -file d_base64.cer -keystore testcacerts 

生成细的文件testcacerts。在我的Eclipse IDE中,我有一个可以访问https网址的java程序。在运行该程序时,我在VM参数中给出了以下内容: -Djavax.net.ssl.keyStore = c:// testcacerts

java程序运行良好。当我的应用程序试图访问HTTPS URL现在我在部署Tomcat服务器7项目的战争,它提供了以下异常

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. 

我设置环境变量CATALINA_OPTS和JAVA_OPTS为指向testcacerts位置 JAVA_OPTS = -Djavax.net.ssl.trustStore =/temp/testcacerts

当我重新启动我的tomcat后,当我的应用程序命中https url时,我得到相同的异常。 我甚至试图改变配置server.xml中Tomcat中的conf下面

<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" 
maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" 
scheme="https" secure="true" SSLEnabled="true" clientAuth="false" sslProtocol="TLS" 
keystoreFile="/temp/testcacerts" keystorePass="samplePassword" /> 

给出在keystorePass的密码是我在生成密钥库,得到一个。

即使在上述变化之后,我得到了同样的异常。

我目前在Unix环境下运行应用程序,而且tomcat也存在于Unix服务器中。我无权访问java安装目录,因此我无法将此证书文件放在jre \ lib \ security文件夹中。

我在这里丢失了什么。请指导我。

回答

0

如果它是有效的自签名证书,您应该为SSL连接器选择一个证书。请选择证书(例如a_base64)添加keyAlias到您的连接器配置

<Connector port="8443" ... keyAlias="a_base64" /> 

有用的链接:

http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

您可以删除您-Djavax设置。

+0

Hi Micheal,谢谢你的建议。我删除了javax设置,然后尝试给keyAlias。这一次,当启动tomcat时,我得到了下面的异常:“别名a_base64不能识别键入口”。我尝试添加一个私钥输入到testcacerts文件“keytool -genkey -keystore testcacerts -alias privKey -keyalg RSA -keysize 2048”。现在在keyAlias我给了值“privKey”。这次我在启动过程中没有遇到任何异常,但仍旧是“无法找到有效的证书路径到请求的目标”的旧例外。存在。你可以请我吗? –

+0

请按照上述第一个链接中的说明尝试创建自签名证书。请注意,默认别名是'tomcat' – Michael

+0

我的意思是请按步骤移动:1.根据站点自行签名2.更改别名3.更改密钥大小 – Michael