SSL:无法从 pem 文件 lighttpd 读取 X509 证书

SSL:无法从 pem 文件 lighttpd 读取 X509 证书

我之前在 lighttpd 上安装过 SSL 密钥,并记录了执行的步骤,以确保将来可以复制它。好吧,我有一段时间没碰过服务器了,我需要创建一个支持 SSL 的带有 lighttpd 的新 Web 服务器。按照我笔记中的所有步骤操作,结果出现了这个错误

SSL: couldn't read X509 certificate from PEM file

我不确定我错过了什么,但如果有人能看看我的步骤并建议我错过了什么,我将不胜感激。

这是我的环境

CentOS 6.4 64 bit
lighttpd/1.4.35 (ssl) - a light and fast webserver

我的ssl证书来自startcom公司

这是我的步骤

生成我的 csr

openssl req -new -newkey rsa:4096 -nodes -out myserver.csr -keyout myserver_privatekey.key -subj "/C=us/ST=State/L=City/O=MyCompany/OU=Productions/CN=myserver.mycompany.net"

将 csr 发送到 Startcom 并获取此 ssl,将其保存为

myserver.crt

创建最终的 PEM 文件

cat myserver_privatekey.key myserver.crt > myserver.pem

从 startcom 获取了这两个文件

ca.pem 
sub.class1.server.ca.pem

统一这两个文件

cat ca.pem sub.class1.server.ca.pem >> ca-certs.crt

将 crt 和 pem 文件移动到 myssl 目录

这是我的 lighttpd 配置:

$SERVER["socket"] == "0.0.0.0:443" {
        ssl.engine  = "enable"
        ssl.ca-file = "/etc/lighttpd/myssl/ca-certs.crt"
        ssl.pemfile = "/etc/lighttpd/myssl/myserver.pem"

}

$SERVER["socket"] == "[::]:443" {
        ssl.engine  = "enable"
        ssl.ca-file = "/etc/lighttpd/myssl/ca-certs.crt"
        ssl.pemfile = "/etc/lighttpd/myssl/myserver.pem"

}

$HTTP["host"] =~ "^(myserver\.)?mycompany\.net$" {
        ssl.ca-file = "/etc/lighttpd/myssl/ca-certs.crt"
        ssl.pemfile = "/etc/lighttpd/myssl/myserver.pem"
    server.document-root = "/var/www/lighttpd/mywebsite"

}

所以当我完成后,我重新启动了我的 lighttpd,这是我得到的错误。

Starting lighttpd: 2015-09-20 15:58:32: (network.c.543) SSL: couldn't read X509 certificate from '/etc/lighttpd/myssl/myserver.pem'

我以前从未见过或从未见过该错误,所以我不太确定如何从那里继续前进。有人能告诉我我错过了什么吗?请帮忙?

答案1

对我来说,在 PEM 文件中的 key 和 crt 之间添加一个新行可以解决这个问题。

cat my_server.key <(echo) my_server.crt > my_server.pem

相关内容