首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSL_CTX_use_PrivateKey_file (.)失败

SSL_CTX_use_PrivateKey_file (.)失败
EN

Stack Overflow用户
提问于 2016-02-21 18:30:15
回答 1查看 44.5K关注 0票数 14

我用openssl自生成了2个带有openssl的自签名证书,用于测试目的:

代码语言:javascript
复制
    $ sudo openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=FR/ST=Charente/L=Mornac/O=Office/CN=api.cockpit.yves" -keyout /usr/local/etc/nginx/ssl/api.cockpit.yves.key -out /usr/local/etc/nginx/ssl/api.cockpit.yves.crt
    Generating a 4096 bit RSA private key
    ..........................................................................++
    ...................++
    writing new private key to '/usr/local/etc/nginx/ssl/api.cockpit.yves.key'
    -----
    $ sudo openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=FR/ST=Charente/L=Mornac/O=Office/CN=admin.cockpit.yves" -keyout /usr/local/etc/nginx/ssl/admin.cockpit.yves.key -out /usr/local/etc/nginx/ssl/admin.cockpit.yves.crt
    Generating a 4096 bit RSA private key
    ..................................................................................................................................................++
    ..............................++
    writing new private key to '/usr/local/etc/nginx/ssl/admin.cockpit.yves.key'
    -----

在我的nginx.conf文件中,我用以下方法设置Https服务器:

代码语言:javascript
复制
server {
    listen       8444 ssl;

    server_name  admin.cockpit.yves;

    ssl_certificate  ssl/admin.cockpit.yves.crt;
    ssl_certificate_key ssl/admin.cockpit.yves.crt;
    ...
}

server {
    listen       8445 ssl;

    server_name  api.cockpit.yves;

    ssl_certificate  ssl/api.cockpit.yves.crt;
    ssl_certificate_key ssl/api.cockpit.yves.crt;
    ...
}

无论如何测试nginx配置,我都会得到以下错误:

代码语言:javascript
复制
    sudo nginx -t
    nginx: [emerg] SSL_CTX_use_PrivateKey_file("/usr/local/etc/nginx/ssl/admin.cockpit.yves.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: ANY PRIVATE KEY error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
    nginx: configuration file /usr/local/etc/nginx/nginx.conf test failed

有什么不对的?是因为我试图为两个不同的子域(admin )设置2个证书吗?还有api。)对于相同的域cockpit.yves?

谢谢你的反馈

EN

回答 1

Stack Overflow用户

发布于 2016-12-03 17:05:13

您的密钥文件可能不包含您的密钥。

我也有这个问题。在我的例子中,我将我的crt粘贴到我的密钥文件中(我的实际crt文件是正确的)。

我的密钥文件以字符串开头:-----BEGIN RSA PRIVATE KEY-----

然后以字符串结束:-----END RSA PRIVATE KEY-----

在问题下的评论中,理查德·史密斯实际上提出了这一解决方案。我发这篇文章是为了以后帮助别人。道具给理查德。

更新

我还通过在我的nginx服务器的crt文件中的cert之前粘贴一个组合证书来体验这一消息。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35540159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档