web-dev-qa-db-ja.com

Nginx:SSL_CTX_use_PrivateKey_file(..)が失敗しました

私はopensslで2つの自己署名証明書を自己生成しました:

    $ 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サーバーを次のように設定しました:

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設定をテストすると、次のエラーが発生します。

    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

何が悪いのでしょうか?それは、同じドメインcockpit.yvesに対して2つの異なるサブドメイン(admin。とapi。)に対して2つの証明書をセットアップしようとしたためですか?

ご意見ありがとうございます

10
user762579

keyファイルにkeyが含まれていない可能性があります。

私もこの問題を抱えていました。私の場合、私のcrtを私のkeyに貼り付けましたファイル(そして私の実際のcrtファイルは正しかった)。

私のkeyファイルは文字列-----BEGIN RSA PRIVATE KEY-----で始まります

次に、文字列-----END RSA PRIVATE KEY-----で終わります

質問の下のコメントで、Richard Smithは実際にこれを解決策として提案しました。後で他の人を助けるための回答として投稿します。リチャードへの小道具。


[〜#〜]更新[〜#〜]

また、nginxサーバーに提供したcrtファイルの証明書の前に、結合された証明書を貼り付けることで、このメッセージを体験しました。

9
James T Snell