OpenSSL 在 LetsEncrypt-Certificate 上使用 -CAFile

bqu*_*rta 5 ssl confluence tomcat8 lets-encrypt plesk-onyx

我目前正在尝试在安装了 Plesk (17.5.3) 和 Let's-Encrypt-Extension 的 Ubuntu 服务器上设置 Confluence (6.6.0)。

Confluence 本身已启动并正在运行,但在 SSL 方面我遇到了一些问题。只需通过 Plesk-Panel 一键安装程序走“轻松之路”,即可轻松保护域本身。

证书将位于/usr/local/psa/var/modules/letsencrypt/etc/archive/<MY_DOMAIN>/

该目录中有四个 .pem 文件:

  • cert1.pem
  • chain1.pem
  • fullchain1.pem
  • privkey1.pem

但现在我需要告诉 Tomcat,我已将此证书安装在 server.xml 中。
由于 Plesk-Let's-Encrypt-Extension 将文件保存为 .pem 文件,我需要通过 OpenSSL 转换它们才能使用 Java keytool。
我在这里找到了一个关于这个主题的很好的教程:
http://robblake.net/post/18945733710/using-a-pem-private-key-and-ssl-certificate-with

当我尝试以下操作时,当我尝试执行时,我一开始就陷入困境

openssl pkcs12 -export -in <PATH>/cert1.pem -inkey <PATH>/privkey1.pem -out foo.p12 -name tomcat -chain -CAFile <PATH>/chain1.pem
Run Code Online (Sandbox Code Playgroud)

-CAFile当我不使用并生成 .p12 文件时,命令本身会运行,但随后会抛出警告:

Error unable to get local issuer certificate getting chain.
Run Code Online (Sandbox Code Playgroud)

如果我尝试添加-CAFile /usr/local/psa/var/modules/letsencrypt/etc/archive/<MY_DOMAIN>/chain1.pem或使用,[...]/fullchain1.pem除了 OpenSSL 打印使用文档之外什么都不会发生。

因此,由于这四个 .pem 文件是唯一可用的,我不知道还能做什么。

因为我也需要中间证书,所以我想知道我必须在这里做什么。

Pak*_*ula 5

chain1.pemLet's Encrypt 中的文件似乎不完整。就我而言,它仅包含一个证书 - 中间 CA Let's Encrypt Authority X3

检查该文件的内容。就我而言,只有一张证书。

openssl x509 -noout -in chain1.pem -subject -issuer

subject= /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
issuer= /O=Digital Signature Trust Co./CN=DST Root CA X3
Run Code Online (Sandbox Code Playgroud)

错误原因是openssl缺少DST Root CA X3的证书

如何创建完整的链条。

  1. 下载 DST 根 CA X3 证书:

    wget http://apps.identrust.com/roots/dstrootcax3.p7c
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将其转换为 PEM

    openssl pkcs7 -inform der -in dstrootcax3.p7c -out dstrootcax3.pem -print_certs
    
    Run Code Online (Sandbox Code Playgroud)

    此时 DST Root CA X3 的证书位于dstrootcax3.pem

  3. 构建完整链(覆盖fullchain1.pem

    cp chain1.pem fullchain1.pem
    echo >> fullchain1.pem
    cat dstrootcax3.pem >> fullchain1.pem
    
    Run Code Online (Sandbox Code Playgroud)
  4. 生成P12文件

    openssl pkcs12 -export -in cert1.pem -inkey privkey1.pem -chain -CAfile fullchain1.pem -out cert1.p12 -name tomcat
    
    Run Code Online (Sandbox Code Playgroud)

要检查所有证书是否都存储在 P12 文件中:

 openssl pkcs12 -info -in cert1.p12
Run Code Online (Sandbox Code Playgroud)

祝你好运keytool;)