証明書付きのSSLキーを使用してnginxリバースプロキシにSSLをインストールしようとしていますが、サーバーを再起動しようとすると次のメッセージが表示されます。
Restarting nginx: [emerg]: SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/cert.key") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
configuration file /etc/nginx/nginx.conf test failed
すべてのファイルはroot:rootであり、600のアクセス許可があり、証明書をテストしました。これらは次のWebサイトで検証されています: http://ssltools.com/cert_key_match
キーに末尾の奇妙な文字がなく、行ごとに64文字があります
これが私の設定ファイルです
server {
listen 443;
server_name my.domain.com;
ssl on;
ssl_certificate conf.d/cert.pem;
ssl_certificate_key conf.d/cert.key;
location / {
proxy_pass http://upstream1;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $Host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
何か案は?ありがとうございました
チェック ここ
次の行をコピーして貼り付けてください。
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
他の人のために働くかもしれない別の解決策:
使用 .pem
両方のファイルssl_certificate
およびssl_certificate_key
あれは:
...
ssl on;
ssl_certificate conf.d/cert.pem;
ssl_certificate_key conf.d/cert.pem;
...
参考までに、BEGINブロックが同一であることを確認してください。鉱山は5ではなく4ダッシュで始まりました。 ----
対-----
。このエラーが発生した場合、検証ツールのエラーメッセージはそれほど具体的ではありません。
同じ問題が発生しました(/var/log/nginx/error.logから)
2019/03/20 01:25:41 [emerg] 2509#0: SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/sslcert/mm.merchantspring.com.au.key") 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を再起動してください、それは動作します。
Nginx設定ファイルは次のとおりです:
ssl_certificate /etc/nginx/conf.d/sslcert/mywebsite.pem;
ssl_certificate_key /etc/nginx/conf.d/sslcert/mywebsite.key;
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
Opensslで作成するのではなく、godaddyのWebサイトからキーファイルを取得しました。しかし、opensslでこれを行うとより良いと思います。