Help us understand the problem. What is going on with this article?

nginx+Let's EncryptサイトにFirefoxからアクセス時SEC_ERROR_UNKNOWN_ISSUERエラー

More than 3 years have passed since last update.

nginxにcertbot-autoを使ってLet’s EncryptのSSL証明書を当てたとき、FirefoxからアクセスするとSEC_ERROR_UNKNOWN_ISSUERってなるとき。

発行者の証明書が不明であるためこの証明書は信頼されません。
サーバが適正な中間証明書を送信しない可能性があります。
追加のルート証明書をインポートする必要があるでしょう。

って言われるとき。

安全なウェブサイトでのエラーコード "SEC_ERROR_UNKNOWN_ISSUER" の問題解決 | Firefox ヘルプ

結論: ssl_certificateにfullchain.pemを設定する

正しい例

server {
 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}

間違った例

server {
 ssl_certificate /etc/letsencrypt/live/example.com/cert.pem;
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}

中間証明書が必要

エラー文まんまだが中間証明書がないで、ってのが原因なので。

certbot-autoで生成されるのは

  • cert.pem : サーバー証明書
  • chain.pem : 中間証明書
  • fullchain.pem : サーバー証明書 + 中間証明書
  • privkey.pem : 秘密鍵

nginxのserverコンテキストで設定できるのは

  • ssl_certificate : 証明書
  • ssl_certificate_key : 秘密鍵

の2つで、中間証明書用の項目 (SSLCertificateChainFileみたいな) はない。
つまりssl_certificateにサーバー証明書 + 中間証明書しないとダメ。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away