本文へスキップ
ecdsa.com
Chrome, Edge and other Chromium browsersブラウザー

エラーメッセージ

net::ERR_CERT_COMMON_NAME_INVALID

警告ページには「NET::ERR_CERT_COMMON_NAME_INVALID」と表示され、自動化ツールは「net::ERR_CERT_COMMON_NAME_INVALID」と出力します。

Chrome, Edge and other Chromium browsers — the certificate does not cover the host name in the address bar

このエラーの意味

証明書は信頼されており有効期間内ですが、アドレスバーのホスト名がサブジェクト代替名(SAN)に含まれていません。エラー名とは裏腹に、Chrome はコモンネームをまったく使用しません(Chrome 58 以降)。証明書の subjectAltName にホスト名を記載する必要があります。よくあるのは、www とネイキッドドメインの違い、新しいサブドメイン、1 階層深すぎる名前に使われたワイルドカードです。

発生する理由

修正方法

  1. 1.

    SAN のリストとアドレスを比較する

    足りない名前が、追加すべき名前です。

    bash
    echo | openssl s_client -connect www.example.com:443 -servername www.example.com 2>/dev/null \
      | openssl x509 -noout -ext subjectAltName
  2. 2.

    提供するすべての名前を含めて再発行する

    ネイキッドドメイン、www、すべてのサブドメイン(または階層ごとのワイルドカード)を含めてください。

    bash
    # Cover the apex and www (and any subdomain you serve)
    sudo certbot certonly --nginx -d example.com -d www.example.com
  3. 3.

    名前ごとにどの証明書が返されるかを確認する

    共有サーバーでは、専用のサーバーブロックがない名前に、別のサイトのデフォルト証明書が返されます。

    text
    # nginx: every served name needs a server block with a matching certificate
    server {
        listen 443 ssl;
        server_name example.com www.example.com;
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    }

関連するエラー

署名エラーデータベースをすべて見る