在 Tomcat 6 上安装 GoDaddy 通配符 SSL 证书

在 Tomcat 6 上安装 GoDaddy 通配符 SSL 证书

我有一个由我们的一位服务器管理员生成的通配符 SSL 证书。我想为我们的一个子域使用一份副本。我是否需要使用 keytool 重新创建 CSR 文件。如何将如下所示的 3 个文件导入到服务器?

  • gd_bundle-g2-g1.crt
  • 自定义dig2.crt
  • 一些十六进制字符串.crt

答案1

你有没有尝试过是否按照文档中描述的流程进行?

以下是您的文件(来源:GoDaddy 证书链存储库

  • gd_bundle-g2-g1.crt:Go Daddy 证书包 - G2 可跨 G1,包含 Root
  • 自定义dig2.crt:Go Daddy 安全服务器证书(中级证书)-G2
  • 一些十六进制字符串.crt:您的证书

在开始之前,您可能希望从服务器管理员那里确认所有这些文件到底是什么,以防万一......

如果您想在 TomCat 服务器上安装通配符证书,您还需要该证书的私钥,除非您已经拥有私钥(例如,如果这是续订)。如果这是全新安装,您肯定需要私钥。

还请记住密钥工具极其不宽容,在错误消息方面也非常愚蠢。它会用无用的错误消息误导你,比如

keytool 错误:java.lang.Exception:无法从回复建立链

那什么可以意思是您需要手动明确指定密钥大小和算法(有关语法和参数,请参阅 keytool 帮助)。

实用建议:除非绝对必要,或者你对 keytool 了如指掌,否则不要使用 keytool。除非你对它了如指掌,否则它很可能会让你发疯。如果你对它不太了解或遇到困难,我建议使用第三方 Java 密钥库编辑器,例如KeyStore 浏览器或者波特克莱

建议 2:使用 nginx 作为您网站的反向代理前端和 SSL 卸载器。在 nginx 上实现 SSL 更容易,它将允许您的 Tomcat 实例专注于应用程序交付,这足以让 Tomcat 实例忙碌起来。:) 此外,您将能够调整 SSL/TLS 设置以在Qualys SSL Labs SSL 测试在这个 SSL 漏洞众多的时代,这并不是一个坏主意...我不确定默认的 Tomcat 6 SSL 配置在该测试中的得分是多少。

答案2

对于 Tomcat 9,我按照此文档创建了 PKCS12 格式的密钥库http://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html#配置。由于我有来自 GoDaddy 的签名证书,因此我通过执行以下 OpenSSL 命令将所需的证书和密钥导入 PKCS12 密钥库。

openssl pkcs12 -export -in mycert.crt -inkey mykey.key
                   -out mycert.p12 -name tomcat -CAfile myCA.crt
                   -caname root -chain
  • mycert.crt -> 是 GoDaddy 提供的证书(通常,这将是您的 GoDaddy 序列号.crt)
  • mykey.key -> 与 CSR 一起创建的密钥。
  • mycert.p12 -> 这将是您的密钥库文件。
  • myCA.crt -> 是 GoDaddy 提供的根证书(在我的情况下,它是 gd_bundle-g2-g1.crt)。

运行上述命令后,mycert.p12文件将生成到您提到的位置。

现在将其配置到您的server.xml

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true" keystoreFile="/your/path/mycert.p12" keystorePass="changeit" keyAlias="tomcat">

keyAlias="tomcat"是导入 PKCS12 密钥库时指定的名称。

保存文件然后重新启动服务器。

答案3

也许这会帮助你解决问题:http://linuxadmin.com.pl/tomcat-and-ssl-certificates-small-how-to/

无论如何,在我看来,在 tomcat 中处理 ssl 相当困难。这就是为什么我更喜欢将 Apache/Nginx 放在 Tomcat 的“前面”。

相关内容