【发布时间】:2017-11-21 06:31:00
【问题描述】:
我在为 tomcat 设置 SSL 证书时遇到问题。我将在下面解释我遵循的步骤
- 我从 GoDaddy 购买了通配符 SSL 证书,我的域托管在 123reg.co.uk 上,因此我在 guide 之后生成了一个 CSR
- Godaddy 要求验证我的域要求我在 DNS 设置中添加 TXT 记录。我添加了一个带有
@和value他们提供的DNS 条目 - 我从 GoDaddy 获得 SSL 证书文件,参考 link
-
gd_bundle-g2-g1.crt(根证书) -
gdig2.crt.pem(中级证书) -
a20b537a8b66f79f.crt(我的网站证书)
-
- 我已经在 tomcat 中设置了 SSL 证书,遵循这个 guide。执行以下命令
keytool -import -alias root -keystore tomcat.keystore -trustcacerts file gd_bundle-g2-g1.crtkeytool -import -alias intermed -keystore tomcat.keystore -trustcacerts -file gdig2.crt.pemkeytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file a20b537a8b66f79f.crt
- 通过添加部分更新 server.xml,参考 link
-
Connector port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="/home/dds/dont_remove_ssl/tomcat.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLS"/>
-
- 我已通过此命令
keytool -list -keystore /home/dds/dont_remove_ssl/tomcat.keystore验证了证书导入,这是输出root, Nov 9, 2017, trustedCertEntry, Certificate fingerprint (SHA1): 27:AC:93:69:FA:F2:52:07:BB:26:27:CE:FA:CC:BE:4E:F9:C3:19:B8-
tomcat, Nov 9, 2017, trustedCertEntry, Certificate fingerprint (SHA1): D1:1B:39:38:53:40:AE:DC:7B:06:FC:A2:72:9F:3C:60:68:0B:BB:D5。 这似乎是个问题,因为此条目的类型必须是PrivateKeyEntry情况并非如此 intermed, Nov 9, 2017, trustedCertEntry, Certificate fingerprint (SHA1): 27:AC:93:69:FA:F2:52:07:BB:26:27:CE:FA:CC:BE:4E:F9:C3:19:B8
-
更新我的应用
web.xml以在我的应用上启用 SSL<security-constraint> <web-resource-collection> <web-resource-name>DDS</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
但此配置不起作用。我收到错误ssl_error_no_cypher_overlap
以下 stackoverflow 帖子与我面临的这个问题有关。但是他们提到的删除-trustcacerts标志的解决方案并不能解决我的问题
【问题讨论】:
-
@EJP 这不是我在帖子中提到的重复。其他帖子中提到的解决方案不能解决我的问题
-
他们为你提供了你的私钥,这已经是一个安全分支,你却什么也没做,这是徒劳的。我强烈建议您遵循 JSSE 参考指南中的步骤,而不是这种废话。
-
我该如何使用他们提供给我的私钥,你能详细解释一下吗?还请提供您提到的本 JSSE 参考指南的 URL 并解释其相关性?
-
谷歌会找到它。您不应该使用他们提供给您的私钥,因为它不是私有的。他们知道。这就是我的观点。
-
这是 JSSE 参考指南的link,但我看不出有什么相关性?我知道您正在努力解释,但我仍然不明白您提到的关于私钥的内容?如果能详细回答我的问题,我会非常有帮助