我知道这是一个与许多其他问题非常相似的问题,但他们都没有给出直接的答案或对我有用的答案......
我从 Let's encrypt 得到了两个文件:
我需要将它们转换为crt和key格式以在 nginx 服务器上使用。
我试过了:
openssl rsa -outform der -in key.pem -out key.key
和
openssl x509 -outform der -in cert.pem -out cert.crt
但是在启动nginx时出现以下错误:
# service nginx restart
Performing sanity check on nginx configuration:
nginx: [emerg] cannot load certificate "/etc/ssl/nginx/cert.crt": PEM_read_bio_X509_AUX() failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: configuration file /usr/local/etc/nginx/nginx.conf test failed
扩展名.pem表示文件格式为PEM(隐私增强邮件)。但是,扩展名并没有告诉任何有关文件内容的信息。内容可以是证书、私钥、公钥或其他东西。
扩展名.crt表示文件的内容是证书。但是,扩展名并没有告诉任何关于文件格式的信息。文件格式可能是 PEM、DER(特殊编码规则)或其他格式。如果文件是文本并且包含-----BEGIN CERTIFICATE-----,则文件格式为 PEM。另一方面,如果文件是二进制文件,则文件格式很可能是 DER。
扩展名.key表示文件的内容是私钥。但是,扩展名并没有告诉任何关于文件格式的信息。文件格式可能是 PEM、DER 或其他格式。如果文件是文本并包含-----BEGIN PRIVATE KEY-----(或类似内容),则文件格式为 PEM。另一方面,如果文件是二进制文件,则文件格式很可能是 DER。
下面来自“ Illustrated X.509 Certificate ”的图表说明了ASN.1 ( X.680 )、DER ( X.690 )、BASE64 ( RFC 4648 ) 和PEM ( RFC 7468 ) 之间的关系。
这两个ssl_certificate和ssl_certificate_key的ngx_http_ssl_module期望,文件格式为PEM为基准原稿说。因此,你不必改变你的文件格式cert.pem,并key.pem因为他们的文件扩展名.pem表明它们的文件格式已经是PEM。只需在您的 Nginx 配置文件中像下面这样写。
ssl_certificate     /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
如果您喜欢.crt和.key扩展,只需像下面那样重命名它们。
$ mv cert.pem cert.crt
$ mv key.pem  key.key
| 归档时间: | 
 | 
| 查看次数: | 5395 次 | 
| 最近记录: |