NET::ERR_CERT_AUTHORITY_INVALIDの原因と直し方(Chrome・Android)

ポイント

NET::ERR_CERT_AUTHORITY_INVALID(Chromeのエラー -202)は、サイトの証明書をブラウザが信頼する認証局(CA)までたどれないことを意味します。証明書が自己署名である、プライベートCAが発行した、中間証明書が欠けている、またはネットワーク上の何かが証明書を差し替えている、のいずれかです。1つのサイトだけで出るなら、直すのはサイト側です。すべてのHTTPSサイトで出るなら、Wi-Fiのログインページ、ウイルス対策ソフトのHTTPSスキャン、職場のネットワーク、古いデバイスを確認してください。この警告が出ている間はパスワードを入力しないでください。

今すぐ確認

NET::ERR_CERT_AUTHORITY_INVALID修正ガイド — 証明書信頼チェーンの障害とChrome、Edge、Firefoxのステップバイステップの解決策
NET::ERR_CERT_AUTHORITY_INVALID修正ガイド — 証明書信頼チェーンの障害とChrome、Edge、Firefoxのステップバイステップの解決策
読み始める
  1. NET::ERR_CERT_AUTHORITY_INVALIDとは?
  2. 各ブラウザでのERR_CERT_AUTHORITY_INVALIDの表示
  3. SSL証明書の信頼の仕組み(信頼チェーン)
  4. NET::ERR_CERT_AUTHORITY_INVALIDの原因
  5. 訪問者向けの修正(クライアント側)
  6. 修正1: Wi-Fiにログインするか、別のネットワークで試す
  7. 修正2: ウイルス対策ソフトのHTTPSスキャンを確認する
  8. 修正3: ブラウザとOSを更新する
  9. 修正4: 日付と時刻を確認する
  10. 修正5: シークレットモードで試し、ブラウザを再起動する
  11. 修正6: Androidの場合
  12. Webサイト所有者向けの修正(サーバー側)
  13. 修正1: 信頼されたCAの証明書をインストール
  14. 修正2: 完全な証明書チェーンを送信する
  15. 修正3: 期限切れの証明書を更新
  16. 修正4: 訪問者が使うすべての名前をカバーする
  17. 修正5: プライベートCAや社内CAを使う場合
  18. LocalhostでのERR_CERT_AUTHORITY_INVALID(開発者向け)
  19. 関連するSSL証明書エラー
  20. よくある質問

NET::ERR_CERT_AUTHORITY_INVALIDとは?

NET::ERR_CERT_AUTHORITY_INVALIDは、Webサイトの証明書を発行した相手をブラウザが信頼していないことを意味します。 Chromeは「この接続ではプライバシーが保護されません」と表示し、詳細設定を開くと、セキュリティ証明書が信頼されていないため「このサーバーが example.com であることを確認できませんでした」と説明し、「原因としては、不適切な設定や、悪意のあるユーザーによる接続妨害が考えられます」と続けます。Chromiumではエラー -202 として定義されています(net_error_list.h)。

接続は確立され、サーバーは証明書を送ってきましたが、ブラウザはそれを自分が信頼する認証局(CA)に結び付けられませんでした。Chromium自身のコメントは理由を3つ挙げています。攻撃者が証明書をすり替えた、サイトがブラウザの知らないCAを使っている、または証明書が自己署名である、のいずれかです。

証明書に複数の問題がある場合、Chromeは最も深刻なものだけを表示し、信頼できない発行元は名前の不一致や期限切れより優先されます。そのため、自己署名で期限も切れている証明書では、ERR_CERT_DATE_INVALIDではなくこのコードが表示されます。

サイトの証明書が信頼されているかチェック

各ブラウザでのERR_CERT_AUTHORITY_INVALIDの表示

表示される文言はブラウザごとに異なります。次の表示を探してください。

ブラウザページのタイトルエラーコード
Chrome、Brave、Operaこの接続ではプライバシーが保護されませんNET::ERR_CERT_AUTHORITY_INVALID
EdgeYour connection isn't privateNET::ERR_CERT_AUTHORITY_INVALID
Firefoxご注意ください。異常な動作をしている可能性があります。(タブ:警告: セキュリティの危険性)SEC_ERROR_UNKNOWN_ISSUER、またはMOZILLA_PKIX_ERROR_SELF_SIGNED_CERT
Safariこの接続はプライベートではありません表示されない
DevToolsのコンソール、Chromiumベースのアプリ(ページが読み込まれない)net::ERR_CERT_AUTHORITY_INVALID

SSL証明書の信頼の仕組み(信頼チェーン)

すべての証明書は、ブラウザがすでに信頼しているルート認証局で終わる信頼チェーンにつながっています。

接続時、サーバーは自身の証明書と1つ以上の中間証明書を送ります。ブラウザは、サイトの証明書が中間証明書によって署名され、その中間証明書が自分のリストにあるルートによって署名されていることを確認します。Chromeはこの確認にOSのリストをもう使っていません。WindowsとmacOSではChrome 108から、AndroidではChrome 115から、独自のリストであるChrome Root Storeを内蔵しています(Appleのリストの使用が必須のiPhoneとiPadは例外)。このリストには約100のルートがあり、バックグラウンドで更新されます(Chrome Root Store)。WindowsとmacOSのEdgeはMicrosoftのリストを、FirefoxはMozillaのリストを内蔵しており、いずれもユーザーや会社がコンピューターに追加したルートも信頼します。

チェーンのどこか1つでも欠けていたり不明だったりすると、このエラーになります(詳しくはSSL証明書チェーンとはを参照)。チェーンは次の4つで構成されます。

  • ルートCA — 自己署名されており、ブラウザのルートリストに組み込まれています
  • 中間CA — ルートが署名し、サーバーが必ず送信する必要があります。欠けている場合、Chromeは証明書に記載されたアドレスから自分でダウンロードしますが、curlやアプリなど多くのクライアントはそれができません
  • サイトの証明書 — 中間CAが署名し、Subject Alternative Nameリストにある名前に対して発行されます
  • 検証 — ブラウザがサイトの証明書から信頼されたルートまでたどり、すべての署名が正しいことを確認します

NET::ERR_CERT_AUTHORITY_INVALIDの原因

どこで表示されるかで原因を絞り込めます。1つのWebサイトだけなら、ほぼ確実にそのサイトの証明書が原因です。すべてのHTTPSサイトなら、デバイスかネットワークが原因です。

原因どちら側の問題表示される場所簡単な確認方法
自己署名証明書Webサイト1つのサイト証明書の発行者がサイト自身になっている
プライベートCAまたは社内CAWebサイト1つのサイト、または社内サイトSSL Checker:どのルートストアからも信頼されていない
中間証明書の欠落Webサイト1つのサイト(一部のアプリやデバイスで)SSL Checker:チェーンが不完全
ルーター、NAS、プリンターの管理画面デバイス192.168.x.xや.localのアドレス想定どおり:これらは自己署名証明書を使います
公衆Wi-Fiのログインページネットワークログインするまですべてのサイトhttp://のページを開いてログイン画面を表示させる
ウイルス対策ソフトのHTTPSスキャン自分のデバイスすべてのHTTPSサイトWebシールドを一時停止して再読み込み
職場・学校のSSLインスペクションネットワークそのネットワーク上のすべてのサイトモバイルデータ通信なら開ける
古いデバイスやブラウザ自分のデバイス一部のサイト(Let's Encryptのサイトが多い)OSとブラウザを更新する

訪問者向けの修正(クライアント側)

自分が運営していないサイトでこのエラーが出る場合は、次の順に試してください。この警告が出ているページでは、パスワードやカード番号を絶対に入力しないでください。

修正1: Wi-Fiにログインするか、別のネットワークで試す

ホテル、空港、カフェのWi-Fiは、ログインページを表示するために最初の通信を横取りすることが多く、そのときHTTPSサイトにはサイト自身の証明書ではなくネットワークの証明書が届きます。Chromeのヘルプによると、こうしたネットワークではログインが必要で、http://を使うページにアクセスするとログインページが表示されます。Chromeはこのエラーの代わりに「Wi-Fi 接続」ページを表示することもあります。ログインを済ませてから再読み込みしてください。

職場や学校のネットワークも、独自の証明書でHTTPSを検査していることがあります。モバイルデータ通信ではエラーが消える場合は、そのネットワークのIT担当者に相談してください。管理対象のデバイスには通常そのルート証明書がインストールされていますが、あなたのデバイスにはないかもしれません。

修正2: ウイルス対策ソフトのHTTPSスキャンを確認する

Kaspersky、Avast、ESET、Bitdefenderなどのウイルス対策ソフトは、HTTPSを独自の証明書で復号してスキャンし、再び暗号化することがあります。そのルート証明書がブラウザに信頼されていない場合や、アップデート後にこの機能が不具合を起こした場合、すべてのHTTPSサイトで一斉にこのエラーが出ます。

テストするには、HTTPSスキャンまたはWebスキャンの機能だけを一時停止して再読み込みします。エラーが消えたら、ウイルス対策ソフトを修復またはアップデートして証明書を再インストールさせるか、HTTPSスキャンをオフのままにしてください。

修正3: ブラウザとOSを更新する

ブラウザとOSはルートリストを定期的に更新しており(Chromeはバックグラウンドのコンポーネント更新で)、古いシステムには新しいルートがありません。たとえば7.1.1より前のAndroidはISRG Root X1を信頼しないため、システムのリストに頼るブラウザやアプリではLet's Encryptのサイトが開けません。

まずブラウザを更新してください。WindowsとmacOSのChromeとEdgeは独自のルートリストを持ち、AndroidのChromeもバージョン115からそうです。次にOSを更新します。

修正4: 日付と時刻を確認する

時計が数か月、数年単位でずれていると、証明書はまだ有効期間前か期限切れに見えます。その場合Chromeは通常、別の警告(「時計が遅れています」やERR_CERT_DATE_INVALID)を表示しますが、CMOS電池が切れた後や仮想マシンを復元した後のように時計が大きく狂っていると、信頼の確認まで失敗することがあります。確認は10秒で済みます。

Windows:設定 → 時刻と言語 → 日付と時刻 →「時刻を自動的に設定する」をオン。macOS:システム設定 → 一般 → 日付と時刻 →「日付と時刻を自動的に設定」。Android:設定 → システム → 日付と時刻 →「日時を自動的に設定」(Android 16では「日時の自動設定」)。

修正5: シークレットモードで試し、ブラウザを再起動する

シークレット ウィンドウ(ChromeとEdgeはCtrl+Shift+N、FirefoxのプライベートウィンドウはCtrl+Shift+P)では、許可していない拡張機能は動きません。VPNやプロキシの拡張機能は、独自の証明書を提示するサーバー経由で通信を送ることがあります。シークレットモードでサイトが開けるなら、chrome://extensionsで拡張機能をすべてオフにし、1つずつオンに戻してください。

サイトが証明書を直したばかりなら、ブラウザのウィンドウをすべて閉じて開き直し、新しい証明書を最初から確認させてください。

修正6: Androidの場合

Androidには独自の確認ポイントがいくつかあります。

  • 日付と時刻を自動に設定する:設定 → システム → 日付と時刻 →「日時の自動設定」。
  • ChromeとAndroid System WebViewを更新する:Google Play ストアから更新します。WebViewでWebページを表示するアプリはAndroid自身のルートリストで証明書を確認するため、古いAndroidではそこで失敗することがあります。
  • HTTPSをフィルタリングするVPN、広告ブロック、「セーフブラウジング」系のアプリをオフにする:これらが動いているとステータスバーに鍵やVPNのアイコンが表示されます。
  • Wi-Fiにログインする:公衆ネットワークでは、ログインページで同意するまでこのエラーが出ます。
  • 7.1.1より前のAndroidでは、Let's Encryptのルートがシステムのリストにないため、そのリストに頼るアプリやブラウザはそれらのサイトを検証できません。独自のルートリストを持つブラウザを使うことが唯一の回避策です。

Webサイト所有者向けの修正(サーバー側)

自分のサイトでNET::ERR_CERT_AUTHORITY_INVALIDが出ると訪問者から報告があった場合、多くは配信している証明書が公開ルートにつながっていません。まずSSL Checkerで確認し、見つかった問題を直してください。インストールしたものと違う証明書が表示される場合は、DNS Lookupでドメインが想定どおりのサーバーを指しているか、HTTPヘッダーチェックでどのサーバーが応答しているかを確認します。

修正1: 信頼されたCAの証明書をインストール

自己署名証明書や自前のCAが発行した証明書は、訪問者のブラウザに信頼されることはありません。署名者がどの公開ルートリストにも載っていないからです。

代わりに、公的に信頼されたCAの証明書をインストールしてください。Let's Encryptは主要なすべてのブラウザが信頼する無料の自動化証明書を発行しており、DigiCert、Sectigo、GlobalSignは組織認証やサポート付きの証明書を販売しています。

bash
# Install Let's Encrypt certificate with Certbot (Nginx)
sudo certbot --nginx -d example.com -d www.example.com

# Install Let's Encrypt certificate with Certbot (Apache)
sudo certbot --apache -d example.com -d www.example.com

# Verify the installed certificate
sudo certbot certificates

修正2: 完全な証明書チェーンを送信する

証明書自体は完全に有効でも、サーバーが中間証明書を送り忘れていることがあります。Chromeは欠けた中間証明書を自分でダウンロードしてこの問題を覆い隠すことが多いため、サイトはChromeでは開けるのに、curl、アプリ、決済のコールバック、一部のスマートフォンでは失敗します。

DNS RobotのSSL Checkerでサイトを調べると、サーバーが送るチェーンと、Mozilla、Chrome、Apple、Microsoftのそれぞれがそのチェーンを信頼しているかがわかります。ターミナルから確認することもできます。

bash
# List each certificate the server sends (s: subject, i: issuer)
openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null 2>/dev/null | grep -E ' [si]:'

# letsencrypt.org on 26 Oct 2026, a complete chain:
#  0 s:CN=letsencrypt.org
#    i:C=US, O=Let's Encrypt, CN=YE2
#  1 s:C=US, O=Let's Encrypt, CN=YE2
#    i:C=US, O=ISRG, CN=Root YE
#  2 s:C=US, O=ISRG, CN=Root YE
#    i:C=US, O=Internet Security Research Group, CN=ISRG Root X2
#  3 s:C=US, O=Internet Security Research Group, CN=ISRG Root X2
#    i:C=US, O=Internet Security Research Group, CN=ISRG Root X1
# Only certificate 0 listed = the intermediate is missing.

# nginx: point ssl_certificate at the full chain, not the leaf alone
ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

# Apache 2.4.8+
SSLCertificateFile    /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

修正3: 期限切れの証明書を更新

信頼されたCAの証明書が期限切れになると、このエラーではなくERR_CERT_DATE_INVALIDが表示されます。Chromeはより深刻な問題を報告するため、ERR_CERT_AUTHORITY_INVALIDが出るのはチェーンも信頼されていない場合だけです。いずれにしても、日付を確認して更新してください。

bash
# Check the certificate's dates
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -dates
# notBefore=Sep 30 12:00:00 2026 GMT
# notAfter=Dec 29 11:59:59 2026 GMT

# Renew now with Certbot, then reload the web server
sudo certbot renew --force-renewal
sudo systemctl reload nginx    # or apache2

修正4: 訪問者が使うすべての名前をカバーする

信頼された証明書でも、アドレスバーの名前が含まれていなければ、代わりにERR_CERT_COMMON_NAME_INVALIDが表示されます。このエラーに変わるのは証明書も信頼されていない場合だけなので、まず信頼の問題を直し、それから名前を直してください。

ブラウザが確認するのはSubject Alternative Nameのリストだけで、古いCommon Nameは見ません。ワイルドカード(*.example.com)は1階層のサブドメインをカバーしますが、example.com自体はカバーしないため、申請時に両方を含めてください。SSL Checkerで証明書の名前リスト全体を確認できます。

修正5: プライベートCAや社内CAを使う場合

社内サイトでは、意図的に社内CAを使うことがよくあります。これが機能するのは会社のルート証明書がインストールされたデバイスだけで、ChromeとEdgeはWindowsやmacOSに追加されたルートを信頼します(Chrome Root Store FAQ)。グループ ポリシーやデバイス管理ツールで配布するか、次のコマンドで手動で追加してください。

bash
# Windows (Command Prompt as Administrator): trust for all users
certutil -addstore -f Root company-root.crt

# macOS: trust in the System keychain
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain company-root.crt

LocalhostでのERR_CERT_AUTHORITY_INVALID(開発者向け)

自己署名証明書を使うローカルのHTTPSサーバーでは、このエラーは仕様どおりです。警告をクリックして先に進むのではなく、自分のマシンで証明書を信頼させましょう。

  • mkcert — mkcert -installがローカルCAを作成してシステムのトラストストアに追加します(NSSのcertutilがインストールされていればFirefoxにも)。続けてmkcert localhost 127.0.0.1 ::1を実行すると、Chrome、Edge、Firefoxが信頼する証明書ができます
  • Next.js — next dev --experimental-httpsが、mkcertでローカルに信頼される証明書を自動で作成します
  • Vite — @vitejs/plugin-basic-sslは信頼されない証明書を作るため、このエラーは消えません。代わりにserver.httpsでmkcertのファイルを指定してください
  • もう使えない古い方法 — chrome://flags/#allow-insecure-localhostのスイッチはChrome 130以降で期限切れになり、chrome://flagsから消えました
bash
# Install mkcert (macOS)
brew install mkcert
mkcert -install

# Generate localhost certificate
mkcert localhost 127.0.0.1 ::1
# Creates: localhost+2.pem and localhost+2-key.pem

# Use with Node.js
const https = require('https');
const fs = require('fs');
https.createServer({
  cert: fs.readFileSync('localhost+2.pem'),
  key: fs.readFileSync('localhost+2-key.pem')
}, app).listen(3000);

NET::ERR_CERT_AUTHORITY_INVALIDは、Chromeの「この接続ではプライバシーが保護されません」ページの裏にある証明書エラーの1つです。コードごとに、失敗したチェックが異なります。

エラーコード意味DNS Robotのガイド
NET::ERR_CERT_AUTHORITY_INVALID証明書を保証する信頼されたCAがないこの記事
NET::ERR_CERT_COMMON_NAME_INVALID証明書がこの名前をカバーしていない「この接続ではプライバシーが保護されません」の直し方
NET::ERR_CERT_DATE_INVALID期限切れ、有効期間前、または時計のずれ「この接続ではプライバシーが保護されません」の直し方
NET::ERR_CERT_REVOKEDCAが証明書を失効させたサイトに新しい証明書が必要
ERR_SSL_PROTOCOL_ERROR証明書の確認より前にTLSハンドシェイクが失敗した修正ガイド
ERR_SSL_VERSION_OR_CIPHER_MISMATCH共通のTLSバージョンや暗号方式がない修正ガイド

SSL証明書チェーンを今すぐ確認

DNS Robotの無料SSL Checkerは、サイトが送信する証明書チェーン、Mozilla・Chrome・Apple・Microsoftそれぞれが信頼しているかどうか、有効期限、証明書に含まれる名前を表示します。そこで問題がなければ、原因はお使いのデバイスかネットワークです。

出典

  1. net_error_list.h (CERT_AUTHORITY_INVALID -202), Chromium
  2. Chrome Root Store FAQ, Chromium
  3. Chains of trust, Let's Encrypt
  4. Baseline Requirements for TLS server certificates, CA/Browser Forum
  5. Chrome Root Store, Chromium
  6. Changes to Microsoft Edge TLS server certificate verification, Microsoft

よくある質問

NET::ERR_CERT_AUTHORITY_INVALIDとはどういう意味ですか?

Webサイトの証明書を発行した相手をブラウザが信頼していない、つまり自分のリストにある認証局までたどれないという意味です。証明書が自己署名である、プライベートCAが発行した、中間証明書が欠けている、またはネットワーク上の何かが証明書を差し替えている可能性があります。Chromeではエラー -202です。

ERR_CERT_AUTHORITY_INVALIDの警告を無視しても安全ですか?

安全なのは、自宅ネットワーク上のルーターやNASの管理画面のように、自分が所有していて見覚えのあるデバイスの場合だけです。これらは自己署名証明書を使っています。公開Webサイトでは、この警告は誰かが接続を傍受しているという意味の場合があるため、先に進まず、警告が出ている間はパスワードやカード情報を絶対に入力しないでください。

ChromeでERR_CERT_AUTHORITY_INVALIDを修正するにはどうすればよいですか?

すべてのサイトで出る場合は、Wi-Fiのログインページでログインするかモバイルデータ通信に切り替え、ウイルス対策ソフトのHTTPSスキャンを一時停止し、ChromeとOSを更新し、時計を確認し、シークレットモードで試してください。1つのサイトだけで出る場合は、そのサイトの証明書が原因で、直せるのはサイトの管理者だけです。

EdgeでNET::ERR_CERT_AUTHORITY_INVALIDが出るのはなぜですか?

Chromeと同じ理由です。EdgeはChromeと同じChromiumのコードとエラーコードを使っています。WindowsとmacOSでは、Microsoft独自のルートリストとコンピューターにインストールされたルートで証明書を確認するため、ウイルス対策ソフトのHTTPSスキャン、職場のネットワーク、サイトの自己署名証明書はEdgeでもこのエラーを引き起こします。

AndroidでERR_CERT_AUTHORITY_INVALIDを直すにはどうすればよいですか?

日付と時刻を自動設定にし、Google Play ストアでChromeとAndroid System WebViewを更新し、HTTPSをフィルタリングするVPNや広告ブロックのアプリをオフにし、公衆Wi-Fiにログインしてください。7.1.1より前のAndroidはLet's Encryptのルートを信頼しないため、システムのリストに頼るアプリやブラウザは多くのサイトで失敗します。

なぜこのエラーは1つのWebサイトだけに表示されるのですか?

そのサイトの証明書に問題があるからです。自己署名である、プライベートCAが発行した、またはサーバーが中間証明書を送っていない、のいずれかです。あなたの側では直せず、サイトの管理者が公開CAの証明書を完全なチェーンでインストールする必要があります。SSLチェッカーを使えば、どれに当たるかがわかります。

あるブラウザではエラーが出て、別のブラウザでは出ないのはなぜですか?

ブラウザごとに信頼するルートCAのリストを持てるからです。ChromeはChrome Root Store、EdgeはMicrosoftのリスト、FirefoxはMozillaのリスト、SafariはAppleのリストを使います。欠けた中間証明書の補い方も異なる(ChromeとEdgeはダウンロードし、Firefoxは事前に読み込んだセットを使う)ため、ぎりぎりの証明書はあるブラウザでは通り、別のブラウザでは失敗することがあります。

期限切れのSSL証明書はERR_CERT_AUTHORITY_INVALIDを引き起こしますか?

期限切れだけでは引き起こしません。信頼されたCAの証明書が期限切れになると、ERR_CERT_DATE_INVALIDが表示されます。ただしChromeは最も深刻な問題だけを報告するため、証明書が期限切れで、しかも自己署名などで信頼されていない場合は、ERR_CERT_AUTHORITY_INVALIDが表示されます。

localhostでこのエラーを修正するにはどうすればよいですか?

mkcertを使ってください。mkcert -installでローカルCAをトラストストアに追加し、mkcert localhost 127.0.0.1 ::1でブラウザが信頼する証明書を作成します。Next.jsならnext dev --experimental-httpsでこれを自動で行えます。古いchrome://flags/#allow-insecure-localhostのスイッチは、もうchrome://flagsにはありません。

ウイルス対策ソフトウェアがERR_CERT_AUTHORITY_INVALIDを引き起こす可能性はありますか?

はい。HTTPSスキャン機能を持つウイルス対策ソフトは、独自の証明書で通信を復号します。その証明書がブラウザに信頼されていないと、すべてのHTTPSサイトでこのエラーが出ます。テストするにはHTTPSスキャンまたはWebスキャンの機能だけを一時停止し、その後ウイルス対策ソフトを修復または更新してください。

著者について

Shaik Vahid

DNS Robot 創設者. Vahid は長年 Web ホスティングのサポートで、お客様のドメイン、DNS レコード、SSL 証明書、メール配信の問題を解決してきました。DNS Robot のツールを開発し、実際によく起きるエラーをもとにこれらのガイドを書いています。

SSL証明書チェック

SSL証明書の有効性とセキュリティ詳細を検証