如何准备并向 Wildfly/JBoss 添加 GoDaddy SSL 通配符证书

如何准备并向 Wildfly/JBoss 添加 GoDaddy SSL 通配符证书

我对如何准备通配符证书并以可以在 WildFly/JBoss 中使用的方式添加它进行了一些研究(我使用的是 WildFly 16,但对于 JBoss 来说应该相同)。

我拥有的文件(以及它们是什么 - 来自辨别 GoDaddy SSL 证书类型):

  • <series of numbers>.crt:我的证书
  • gd_bundle-g2-g1.crt:GoDaddy 证书包 - G2 可跨 G1,包括根证书
  • gdig2.crt.pem:GoDaddy 安全服务器证书(中级证书)-G2
  • privatekey.txt:我的证书的私钥

通过一系列研究和同事的帮助,我发现我可以通过以下命令准备和添加证书:

openssl pkcs12 -export -in <series of numbers>.crt -inkey privatekey.txt -out outfile.pkcs12 -name yourdomain.com -CAfile gd_bundle-g2-g1.crt -caname root
<enter a password>
keytool -importkeystore -trustcacerts -deststorepass <newpass> -destkeypass <newpass> -destkeystore new.keystore -srckeystore outfile.pkcs12 -srcstoretype PKCS12 -srcstorepass <password entered above> -alias yourdomain.com

所以,这一切都是可行的,至少在浏览器中是可行的。我可以浏览通过 WildFly 托管的页面,它们运行良好,浏览器不会报告 SSL 错误。但是,我使用 WebSocket 连接的应用程序无法验证证书。为了进一步研究这个问题,我对我的网站使用了以下方法:

openssl s_client -connect yoursite.yourdomain.com:443

结果如下:

Verification error: unable to verify the first certificate

研究完之后,我发现 Firefox 会执行“证书发现”并解析证书链以验证服务器的证书,即使没有提供。所以在这里我试图确定缺少了什么...

答案1

在尝试解决此问题时,我怀疑排除的文件对于解析链是必要的,但无法轻松确定如何将它们放入。我进行了一些反复试验,每次都使用 openssl s_client 进行测试,直到我找出有效的方法。这是直接从服务器解析链的一系列命令:

cat <series of numbers>.crt gdig2.crt.pem > bundle.crt
openssl pkcs12 -export -in bundle.crt -inkey privatekey.txt -out outfile.pkcs12 -name yourdomain.com -CAfile gd_bundle-g2-g1.crt -caname root
<enter a password>
keytool -importkeystore -trustcacerts -deststorepass <newpass> -destkeypass <newpass> -destkeystore new.keystore -srckeystore outfile.pkcs12 -srcstoretype PKCS12 -srcstorepass <password entered above> -alias yourdomain.com

简单的添加解决了这个问题。希望这对某些人有帮助!

答案2

这简直是​​不可能的。我在 Android 和 WildFly 上设置了双向 SSL,但无法让单向 SSL 与 WildFly 配合使用。这些愚蠢的 SSL 提供商只适用于 AWS EC2 和 Google App Engine 等高级应用程序。在 WildFly 中绝对没有关于安装这些证书的教程。

我已经尝试在 WildFly 上设置 GoDaddy 和 Comodo 证书几个小时了。

Certbot 与 Let's Encrypt 在 WildFly 上完美兼容。可惜,愚蠢的 iOS 无法与 Let's Encrypt 兼容。

您唯一的选择是使用像 Nginx 这样的第三方代理应用程序。

相关内容