在/ 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
我通过从sslpoint的证书生成器复制到nano来创buildmywebsite.key。 我通过运行sudo cat mywebsite.crt sslpointintermediate.crt >> mywebsite.pem创buildmywebsite.pem sudo cat mywebsite.crt sslpointintermediate.crt >> mywebsite.pem 。 创buildmywebsite.crt和sslpointintermediate.crt通过粘贴到nano发送给我的电子邮件sslpoint 。
mywebsite.pem和mywebsite.key实际上不是文件的名称。
使用Debian 8.尝试让nginx和gunicorn使用ssl。 有问题,我认为这是(至less部分),因为SSL证书不正确地安装,如上面的输出所示。 我该如何解决这个问题?
编辑:
在这个问题的前一个版本中,我还询问了'openssl verify'.key文件。 我已经删除了这个问题的一部分,因为这没有意义。
如果你想使用openssl verify ,你应该使用:
openssl verify -CAfile your-intermediates-and-final.pem mywebsite.crt
用PEM格式将所有中间和最终(可信锚点)连接在一起,将你的-mediates-and-final.pem与它们连接起来。 如果要使用-CApath /etc/ssl/certs选项,则每个中间证书必须位于/ etc / ssl / certs目录中,并且必须以root身份执行:
$ c_rehash
密钥只包含私钥而没有证书,所以“openssl verify”就没有意义了。
似乎nginx正确configuration。 validation权限是否正确,并在server {}或http {}部分中具有以下两个configuration参数:
ssl_certificate /path/to/your/mywebsite.pem; ssl_certificate_key /path/to/your/mywebsite.key;
并在您的server {}部分:
listen 443 ssl;
当需要将私有数据作为私钥在/etc/ssl/private/读取时,OpenSSL只需以root身份运行。 对于证书validation,不需要root。 /etc/ssl/certs应该是每个人都可读的,以便每个用户和软件都可以validation证书。 或者每次打电话给网站时都inputroot密码?
$ 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
查看verify(1ssl)的联机帮助页:
2 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate the issuer certificate of a looked up certificate could not be found. This normally means the list of trusted certificates is not complete.
您需要提供一些关于证书所需证书链接的信息:
openssl verify [-CApath directory] [-CAfile file] [-untrusted file] [certifictes]
例如:
openssl verify -CAfile RootCert.pem -untrusted Intermediate.pem UserCert.pem
请参阅SO上的这个问题
$ openssl verify mywebsite.key I get a message saying unable to load certificate 139893743232656:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
无法加载证书,因为您input了私钥。 这是一个证书的对面,持有公钥与关于证书链,有效性等额外信息。错误信息清楚地说,预期: Expecting: TRUSTED CERTIFICATE
你只需要“安装”一个根证书,如果它不被你的操作系统所信任,并且你希望它被信任的话。 但是当你谈论服务器时,在信任存储中包含你自己的域名证书是没有任何意义的。 在这种情况下,您的软件(nginx)需要访问包括完整信任链的证书文件,从您的域的叶证书到您的CA的根证书(可选)。
请看nginx的文档,寻找这种types的其他问题(包括SE和SF在内的互联网)已经充满了它,或者给出了你的问题的确切和详细的描述。
看起来像awscli使用您的系统本地openssl来validation证书。 在我的Mac我有openssl版本0.9.8,我无法validation我的证书。 你可以通过编写命令来检查你的openssl的版本
openssl version
我切换到一个包含openssl 0.10版的系统,它解决了这个问题。 你也可以升级你的openssl版本。
我尝试再次上传证书,它为我工作。
你必须捕获所有的证书CA_Chain.crt:
cat RootCA.crt IntermediateCert1 IntermediateCert2> CA_Chain.crt
opensslvalidation-CAfile CA_Chain.crt website.crt
(由IntermediateCert2网站签署)