“openssl verify”输出“无法获得本地颁发者证书”

Dan*_*iel 3 certificate debian installation openssl ssl-certificate

在 /etc/ssl 中,当我这样做时,sudo openssl verify mywebsite.pem 我收到一条消息,说明

    mywebsite.pem: OU = GT46830179, OU = See www.rapidssl.com/resources/cps (c)15, OU = Domain Control Validated - RapidSSL(R), CN = *.logitapp.com
error 20 at 0 depth lookup:unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)

我通过从 sslpoint 的证书生成器复制到 nano 来创建 mywebsite.key。我通过运行创建了 mywebsite.pem sudo cat mywebsite.crt sslpointintermediate.crt >> mywebsite.pem。通过将sslpoint发送给我的电子邮件粘贴到 nano 中,创建了 mywebsite.crt 和 sslpointintermediate.crt 。

mywebsite.pem 和 mywebsite.key 实际上不是文件的名称。

使用 Debian 8。试图让 nginx 和 gunicorn 与 ssl 一起工作。有问题,我认为这是(至少部分)因为 ssl 证书以某种方式没有正确安装,如上面的输出所示。我该如何解决这个问题?

编辑:

在此问题的先前版本中,我还询问了“openssl 验证”.key 文件。我已经删除了问题的那部分,因为尝试这样做没有意义。

Seb*_*b35 9

如果你想使用openssl verify,你应该使用:

openssl verify -CAfile your-intermediates-and-final.pem mywebsite.crt
Run Code Online (Sandbox Code Playgroud)

使用 your-intermediates-and-final.pem 将所有中间和最终(受信任的锚点)连接到内部,采用 PEM 格式。如果要使用该-CApath /etc/ssl/certs选项,每个中间证书都必须在 /etc/ssl/certs 目录中,并且必须以 root 身份执行:

$ c_rehash
Run Code Online (Sandbox Code Playgroud)

nginx 似乎已正确配置。验证权限是否正确,并且您的server {}http {}部分中有以下两个配置参数:

ssl_certificate /path/to/your/mywebsite.pem;
ssl_certificate_key /path/to/your/mywebsite.key;
Run Code Online (Sandbox Code Playgroud)

在你的server {}部分:

listen 443 ssl;
Run Code Online (Sandbox Code Playgroud)

编辑 - 这是对原始问题的回答的一部分:

该密钥仅包含私钥而没有证书,因此“openssl 验证”没有意义。