Nginx提示SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line错误解决

今天在给Nginx配置证书的时候,遇到了这么一个问题,详细报错如下:

root@elsenow-virmach:~# nginx -t
nginx: [emerg] PEM_read_bio_X509_AUX("/root/elsenow-ecc.crt") failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line)
nginx: configuration file /etc/nginx/nginx.conf test failed


一开始以为是证书配置有问题,还特意检查了一遍SSL证书的key是否正确,仔细检查之后发现,key并没有问题,最后发现是证书链合并的时候出现了问题。
因为我是用cat命令将两个crt格式证书合并的,导致两个文件合并的时候因为没有换行而第一个文件的结尾部分和第二个文件的开头部分合并在了一起,也就是这样:

-----END CERTIFICATE----------BEGIN CERTIFICATE-----

解决方法也很简单,只需要将这两行手动拆分一下就行,也就是这样:

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----

注意前后的数量保持一致就行。
更改好之后,保存,重新启动Nginx就行了。