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

エラーメッセージ

net::ERR_CERT_AUTHORITY_INVALID

警告ページにはコードが「NET::ERR_CERT_AUTHORITY_INVALID」と表示されます。自動化ツール(Playwright、Puppeteer、Selenium のログ)は「net::ERR_CERT_AUTHORITY_INVALID」と報告し、ecdsa.com のヘッドレス環境での再現でもこの形式で出力されます。Edge やその他の Chromium 系ブラウザーも同じコードを使います。

Chrome, Edge and other Chromium browsers — certificate error interstitial "Your connection is not private"

このエラーの意味

Chrome は、サイトの証明書から自身が信頼するルートまでのチェーンを構築できなかったため、「この接続ではプライバシーが保護されません」という警告ページを表示してページをブロックします。証明書が自己署名である、プライベート CA が発行した、中間証明書なしで提示されている、あるいは接続を傍受するものに差し替えられている可能性があります。Chrome は、Windows と macOS では OS の証明書ストア(パブリック CA については独自の Chrome ルートストアも)を、Linux では NSS データベースを使用します。

発生する理由

修正方法

  1. 1.

    サイト運営者:サーバーが返すチェーンを確認する

    証明書が 1 つしか送信されておらず、その発行者が中間 CA である場合、サーバーの設定は不完全です。

    bash
    # Site owners: which certificates does the server send? (1 = intermediate missing)
    openssl s_client -connect www.example.com:443 -servername www.example.com -showcerts </dev/null 2>/dev/null \
      | grep -E '^ *[0-9]+ s:|^ *i:'
  2. 2.

    サイト運営者:完全な証明書チェーンを返す

    すべてのクライアント(Chrome だけでなく)が検証できるよう、Web サーバーにフルチェーンのファイルを設定してください。

    text
    # nginx: serve leaf + intermediates
    ssl_certificate     /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
  3. 3.

    社内サイト:管理対象デバイスにプライベートルートをインストールする

    社内のルート証明書をデバイス管理または OS の証明書ストアを通じて配布してください。Linux では、Chrome が読み込む NSS データベースに追加してください。

    bash
    # Internal sites: install the company root on the client (Chrome uses the OS store on
    # Windows and macOS; on Linux, the NSS database in ~/.pki/nssdb)
    certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n corp-root -i corp-root-ca.pem
  4. 4.

    ユーザー:何よりも先に、証明書の発行元を確認する

    証明書ビューアーには発行元が表示されます。警告を無視して先に進む(「… にアクセスする(安全ではありません)」)のは、信頼できるネットワーク上の自分のデバイスに限るべきです。不明なネットワークでこれを行うと、その証明書を提示した相手にセッションを渡すことになります。

    text
    Click "Not secure" in the address bar → "Certificate details" and read the issuer.
    A company or security-vendor name on a public site = TLS inspection on your network.
    An unknown issuer on public Wi-Fi = do not proceed.

関連するエラー

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