エラーメッセージ
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 データベースを使用します。
発生する理由
サーバーが中間証明書を送信していない
よくあるChrome は欠けている中間証明書を自ら取得することが多く(AIA フェッチ)、キャッシュすることもあります。そのため、同じ設定ミスでも、一部のマシンやアプリ、または初回アクセス時にしか失敗しません。
自己署名証明書またはプライベート CA の証明書
よくあるルーター、NAS、開発用サーバー、イントラネットのサイトで、ブラウザーが信頼するよう一度も設定されていない証明書が使われているケースです。
何かが接続を傍受している
よくあるウイルス対策ソフトの HTTPS スキャン、このデバイスにルート証明書が入っていない社内プロキシ、公衆 Wi-Fi のキャプティブポータル、または実際の攻撃者が考えられます。
古い OS またはルートストア
ときどき非常に古い Android や Windows の環境には新しいパブリックルート証明書がないため、そうした環境でのみ最近の証明書が信頼されていないように見えます。
修正方法
- 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.
サイト運営者:完全な証明書チェーンを返す
すべてのクライアント(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.
社内サイト:管理対象デバイスにプライベートルートをインストールする
社内のルート証明書をデバイス管理または 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.
ユーザー:何よりも先に、証明書の発行元を確認する
証明書ビューアーには発行元が表示されます。警告を無視して先に進む(「… にアクセスする(安全ではありません)」)のは、信頼できるネットワーク上の自分のデバイスに限るべきです。不明なネットワークでこれを行うと、その証明書を提示した相手にセッションを渡すことになります。
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.