我有一个为Confluence制作的JKS文件,它已包含我的私钥和公钥。 它适用于大多数浏览器,虽然只是一个小问题。 在sslshopper上,我收到以下消息:
所有网络浏览器都不信任该证书。你可能需要 安装中间/链证书以将其链接到受信任的根 证书。
我从Comodo获得了CA chain + Root,阅读并尝试了以下内容:
keytool -importcert -keystore fecru.jks -storepass SECRET -trustcacerts -alias chain -file cachain.bundle
即使证书已成功添加到密钥存储区,我仍然会得到相同的结果。
我错过了什么?
答案 0 :(得分:2)
这是我在" Java TLS中使用Keystores"作弊表,我需要一直提及,因为出于某种原因,如果你没有完美地做到这一点,似乎没有什么工作。
生成服务器密钥(和自签名证书)
$ keytool -genkey -keyalg RSA -sigalg SHA256withRSA -keysize 4096
的 -alias ${HOSTNAME}
强> -keystore ${HOSTNAME}.jks
创建证书签名请求(CSR)
$ keytool -certreq -sigalg SHA256withRSA -keystore ${HOSTNAME}.jks
让您的CSR由证书颁发机构(CA)签名
将证书重新导入密钥库,从CA的根证书开始,然后将链返回到服务器的证书
$ keytool -import -alias [Authority.CA] -trustcacerts -file [authority's CA cert] -keystore ${HOSTNAME}.jks
$ keytool -import -alias [Authority.intermediate] -trustcacerts -file [authority's intermediate cert] -keystore ${HOSTNAME}.jks
$ keytool -import
的 -alias ${HOSTNAME}
强> -file ${HOSTNAME}.crt -keystore ${HOSTNAME}.jks
在生成服务器密钥之后,我总是制作密钥库的备份副本,以防万一我破坏了。
一些事情严重重要:
alias
(导入服务器的签名证书)keyAlias
中的<Connector>
属性设置为您用于服务器证书的相同值(同样,值与步骤1和4c相同)以上)我强烈建议您使用Qualys's SSLTest工具来测试您的网站。它是我所知道的最全面的测试工具,而且它不会向你推销任何东西。