我有一个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文件夹中。
我在这里丢失了什么。请指导我。
Hi Micheal,谢谢你的建议。我删除了javax设置,然后尝试给keyAlias。这一次,当启动tomcat时,我得到了下面的异常:“别名a_base64不能识别键入口”。我尝试添加一个私钥输入到testcacerts文件“keytool -genkey -keystore testcacerts -alias privKey -keyalg RSA -keysize 2048”。现在在keyAlias我给了值“privKey”。这次我在启动过程中没有遇到任何异常,但仍旧是“无法找到有效的证书路径到请求的目标”的旧例外。存在。你可以请我吗? –
请按照上述第一个链接中的说明尝试创建自签名证书。请注意,默认别名是'tomcat' – Michael
我的意思是请按步骤移动:1.根据站点自行签名2.更改别名3.更改密钥大小 – Michael