Nginx SSL-SSL:错误:0906D06C:PEM例程:PEM_read_bio:无起始行


10

我正在尝试使用123-reg中的证书在服务器上启用ssl,但我一直收到此错误:

nginx: [emerg] SSL_CTX_use_certificate_chain_file("/opt/nginx/conf/cleantechlms.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib)

这是我的nginx配置:

server {
  listen 443;
  server_name a-fake-url.com;
  root /file/path/public;   
  passenger_enabled on;

  ssl on;
  ssl_certificate /opt/nginx/conf/cleantechlms.crt;
  ssl_certificate_key /opt/nginx/conf/cleantechlms.key;
 }

我尝试将crt和key设置为完整文件权限,但是没有区别。

我的crt文件是与ca crt一起发布的crt。

更新资料

我尝试将两个密钥都复制到sperate文件中,然后运行“ cat mykey.crt >> ca.cert”

我也尝试过手动将密钥复制到同一文件中。

有任何想法吗?


/opt/nginx/conf/cleantechlms.crt不知何故被打破了。您是如何创建的?您可以张贴您执行的所有步骤吗?
VBart

cleantechlms.crt您只想拥有公共证书,而没有来自您的ca的密钥和链证书。如果您在文本编辑器打开它,你应该看到的只是--BEGIN-CERTIFICATE--块..
一周

Answers:


6

感谢您的帮助,这就是我解决的方法:

  • 将证书复制到文本编辑器中,以确保没有空格(我已经这样做了)

  • 确保开始和结束证书声明在自己的行上,并且在每个结束处具有相同的“-”号。

  • 确保每行有64个字符(最后一行除外)


当.cer文件仅包含顶级证书而不包含整个捆绑/证书链(中间和根ca)时,我也收到错误消息
radtek

0

我最终遇到了同样的异常,并通过在同一pem文件(pem格式)中添加私钥(末尾x.509 +私钥)来解决了这一问题。我认为这是因为我曾经使用相同的格式并使用“ nignx -t”来验证配置。

希望能帮助到你。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.