Posted at

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

More than 1 year has 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にサーバー証明書 + 中間証明書しないとダメ。