Tomcat SSL:未找到受信任的证书
我使用keytool创建了一个证书:Tomcat SSL:未找到受信任的证书,tomcat,ssl,ssl-certificate,certificate,keytool,Tomcat,Ssl,Ssl Certificate,Certificate,Keytool,我使用keytool创建了一个证书: keytool -genkey -alias tomcat -keyalg RSA 将其导出并导入到我的密钥库: keytool -export -alias tomcat name.crt keytool -import -file name.crt 当我执行keytool-list时,我有两个条目: tomcat, Sept 15, 2010, keyEntry, Certificate fingerprint (MD5): ... mykey, S
keytool -genkey -alias tomcat -keyalg RSA
将其导出并导入到我的密钥库:
keytool -export -alias tomcat name.crt
keytool -import -file name.crt
当我执行keytool-list时,我有两个条目:
tomcat, Sept 15, 2010, keyEntry,
Certificate fingerprint (MD5): ...
mykey, Sept 17, 2010, trustedCertEntry
Certificate fingerprint (MD5):...
请注意,两个条目的指纹相同
我将server.xml配置为指向.keystore文件
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="${user.home}/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
是否需要进行任何其他配置?您需要客户端(即浏览器)信任您的服务器证书
为此,您可以在浏览器中将服务器的证书作为受信任的证书导入,该证书仅在您控制浏览器时有效。或者你得到一个可信的权威机构签署的证书,这需要花钱
以不同的名称导出和重新导入没有任何意义
更新:
我想我开始明白你想做什么了。您希望java客户端通过https访问webapp。是吗
在这种情况下,您需要提供一个“信任库”,即包含受信任证书的密钥库。您需要将系统属性javax.net.ssl.trustStore设置为要使用的信任库的名称
您可能还可以使用手工制作的TrustManager。该网站似乎提供了以下信息:
这个简单的例子可能也会有所帮助:您是否在
-export
和-import
之间执行任何操作(为什么要重新导入刚刚导出的内容)?当keytool
询问“你的名字和姓氏是什么?”时,你是否输入了完整的主机名(事实上这是通用名)?您的应用程序是否正在尝试连接到服务器本身(查看更多堆栈跟踪会很有用)。我重新导入了它,因为我认为它必须是trustedCertEntry。我没有自动取款机。我可以改用我的IP地址吗?我确实将证书导入了我的浏览器。所以我不能使用自签名证书?
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
...
sun.security.validator.ValidatorException: No trusted certificate found