【发布时间】:2011-04-14 08:46:48
【问题描述】:
我使用 keytool 创建了一个证书:
keytool -genkey -alias tomcat -keyalg RSA
导出并导入到我的密钥库中:
keytool -export -alias tomcat name.crt
keytool -import -file name.crt
当我执行 keytool -list 时,我有 2 个条目:
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" />
但是在我的 tomcat 日志中,当我在我的 Java 应用程序中执行操作时看到:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
...
sun.security.validator.ValidatorException: No trusted certificate found
还有其他需要做的配置吗?
【问题讨论】:
-
您在
-export和-import之间做了什么(为什么要重新导入刚刚导出的内容)?当keytool询问“您的名字和姓氏是什么?”时,您是否输入了完整的主机名(实际上是通用名)?您的应用程序是否尝试连接到服务器本身(查看更多堆栈跟踪会很有用)。 -
我重新导入了它,因为我认为它必须是一个trustedCertEntry。我没有主机名 ATM。我可以改用我的 IP 地址吗?
标签: tomcat ssl ssl-certificate certificate keytool