Nginx ssl-SSL:エラー:0906D06C:PEMルーチン:PEM_read_bio:開始行なし


10

123-regからの証明書を使用してサーバーでSSLを有効にしようとしていますが、次のエラーが発生します。

nginx: [emerg] SSL_CTX_use_certificate_chain_file("/opt/nginx/conf/cleantechlms.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib)

これは私のnginx設定です:

server {
  listen 443;
  server_name a-fake-url.com;
  root /file/path/public;   
  passenger_enabled on;

  ssl on;
  ssl_certificate /opt/nginx/conf/cleantechlms.crt;
  ssl_certificate_key /opt/nginx/conf/cleantechlms.key;
 }

crtとkeyを完全なファイル権限に設定しようとしましたが、違いはありません。

私のcrtファイルは、発行されたcrtとca crtを連結したものです。

更新

私はsperateファイルに両方のキーをコピーしてから「cat mykey.crt >> ca.cert」を実行しようとしました

また、キーを同じファイルに手動でコピーしてみました。

何か案は?


あなた/opt/nginx/conf/cleantechlms.crtはどういうわけか壊れています。どのように作成しましたか?あなたがしたすべてのステップを投稿できますか?
VBart

ではcleantechlms.crt、あなたのCAからキーとチェーン証明書なしでのみ公開証明書を持つようにしたいです あなたは、テキストエディタで開いている場合、あなたは...ちょうど--BEGIN-CERTIFICATE--ブロックが表示されるはずです

回答:


6

あなたの助けをありがとう、これは私がそれを解決した方法です:

  • 証明書をテキストエディターにコピーして、空白文字がないことを確認します(これは既に行っています)。

  • 証明書の最初と最後のステートメントが独自の行にあり、両端に「-」の数が同じであることを確認してください。

  • 各行が64文字であることを確認してください(最後の行を除く)


.cerファイルに最上位の証明書のみが含まれ、バンドルされた/証明書のチェーン全体(中間およびルートCA)が含まれていない場合にもエラーが発生しました
radtek

0

私は同じ例外で終わり、同じpemファイル(pem形式)に秘密キー(最後にx.509 +秘密キー)を追加することで修正しました。以前は同じ形式で「nignx -t」を使用して構成を検証していたためだと思います。

それが役に立てば幸い。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.