「この接続ではプライバシーが保護されません」は、最も一般的なSSLエラーです。ブラウザがWebサイトのSSL証明書に問題を検出し、セキュアな接続の確立を拒否したことを意味します。ChromeではNET::ERR_CERT_*、Firefoxでは「警告:潜在的なセキュリティリスクあり」、Safariでは「この接続ではプライバシーが保護されません」として表示されます。
このガイドでは両方の立場からの修正方法を解説します:エラーが表示される訪問者の場合と、訪問者にエラーが表示されてしまうサイト所有者の場合です。
訪問者の場合(クイックフィックス)
これらの手順は、Webサイトではなくデバイス側の問題であるクライアント側の原因を修正します。
1. ページをリロードする
このエラーは一時的な場合があります。TLSハンドシェイク中のネットワーク障害です。F5またはCtrl+Rを押してください。
2. デバイスの日時を確認する
SSL証明書には有効期間があります。コンピューターの時計がずれていると、ブラウザは証明書が有効期限切れまたはまだ有効でないと判断します。修正方法:
- Windows: 設定 → 時刻と言語 → 時刻を自動的に設定する
- macOS: システム設定 → 一般 → 日付と時刻 → 自動的に設定
- Linux:
sudo timedatectl set-ntp true
3. シークレット/プライベートモードを試す
シークレットモードでは動作するが通常モードでは動作しない場合、ブラウザ拡張機能が干渉しています。おそらくHTTPSトラフィックを検査するアンチウイルス、VPN、または広告ブロッカーです。拡張機能を1つずつ無効にして原因を特定してください。
4. ブラウザキャッシュとSSL状態をクリアする
ブラウザが古い証明書をキャッシュしている可能性があります:
- Chrome: 設定 → プライバシー → 閲覧履歴データの削除 → キャッシュされた画像とファイル
- Windows: インターネットオプション → コンテンツ → SSL状態のクリア
- macOS: キーチェーンアクセス → ドメインを検索 → キャッシュされたエントリを削除
5. ネットワークを確認する
企業プロキシ、ホテルのWi-Fiキャプティブポータル、一部のVPNは独自の証明書を挿入します。以下を試してください:
- VPNを切断して再試行する
- 別のネットワーク(例:モバイルホットスポット)に切り替える
- ホテル/空港のWi-Fiの場合、キャプティブポータルに接続する
6. ブラウザを更新する
古いブラウザは新しい認証局を信頼しなかったり、最新のTLSに対応していない場合があります。最新バージョンに更新してください。
「続行する」をクリックしても安全ですか? リスクを理解し、サイトを信頼している場合のみ(例:自己署名証明書を使った自分の開発サーバー)。銀行、メール、ショッピングサイトでは絶対に警告をバイパスしないでください。
サイト所有者の場合(サーバー側の修正)
訪問者にこのエラーが表示されるのは、SSLの設定に問題があるためです。各原因の診断方法と修正方法を解説します。
原因1: 証明書の有効期限切れ
最も一般的な原因です。 Let’s Encrypt証明書は90日ごとに有効期限が切れます。
診断:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates
修正: 証明書を更新してください。GetHTTPSなら5分で完了します。ファイルを置き換えてサーバーをリロードしてください。
原因2: 証明書がドメインと一致しない
証明書がexample.comに対して発行されていますが、www.example.comにアクセスしています(またはその逆)。
診断:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -ext subjectAltName
修正: ベアドメインとwwwの両方を含む新しい証明書を取得してください。GetHTTPSでexample.comとwww.example.comの両方を追加してください。
原因3: 証明書チェーンが不完全
サーバーが中間証明書を送信していません。ブラウザは証明書からルート認証局への信頼パスを構築できません。
診断:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep "Verify return code"
# "21 (unable to verify the first certificate)" = チェーンが不完全
修正:
- Nginx:
ssl_certificateでfullchain.pem(cert.pemではなく)を使用する - Apache:
SSLCertificateChainFile chain.pemを追加する
原因4: 自己署名証明書
自己署名証明書はブラウザに信頼されません。証明書を保証する認証局がありません。
修正: Let’s Encrypt(無料)または商用認証局の証明書に置き換えてください。
原因5: 間違った証明書が配信されている
1つのサーバーで複数のサイトをホストしている場合、誤った証明書が配信される場合があります(SNIの設定ミス)。
診断:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -subject
# CNがドメインと一致していることを確認
修正: 各serverブロック(Nginx)または<VirtualHost>(Apache)で、そのドメインに対して正しいssl_certificateが設定されていることを確認してください。
原因6: TLSバージョンが古い
サーバーがブラウザが廃止した非推奨のTLSバージョン(1.0/1.1)のみをサポートしています。
修正:
# Nginx
ssl_protocols TLSv1.2 TLSv1.3;
# Apache
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
原因7: Cloudflareの「Flexible」SSLモード
Cloudflareの「Flexible」モードは、オリジンサーバーに有効な証明書がない場合にこのエラーを引き起こす可能性があります。
修正: オリジンに証明書をインストールし(GetHTTPSまたはCloudflare Origin CA)、「Full (Strict)」モードに切り替えてください。
原因8: HSTSが不正な状態をキャッシュしている
以前HSTSヘッダーを配信した後にHTTPSが壊れた場合、ブラウザはフォールバックとしてHTTP接続を拒否します。
修正: 有効な証明書でHTTPSを復元してください。テスト中は、自信が持てるまで短いmax-age(例:300秒)のHSTSを使用してください。
エラーコードリファレンス
| Chromeエラーコード | 意味 | 一般的な修正方法 |
|---|---|---|
NET::ERR_CERT_DATE_INVALID | 証明書の有効期限切れまたは未開始 | 証明書を更新またはシステム時刻を修正 |
NET::ERR_CERT_COMMON_NAME_INVALID | ドメインが証明書と一致しない | 正しいドメインの証明書を取得 |
NET::ERR_CERT_AUTHORITY_INVALID | 自己署名または信頼されていない認証局 | Let’s Encryptなどの信頼された認証局を使用 |
NET::ERR_CERT_REVOKED | 証明書が失効している | 新しい証明書を取得 |
NET::ERR_SSL_PROTOCOL_ERROR | TLSハンドシェイクの失敗 | サーバーのTLS設定を確認 |
NET::ERR_SSL_VERSION_OR_CIPHER_MISMATCH | 共通のTLSバージョン/暗号方式がない | サーバーでTLS 1.2以上を有効化 |
SSL_ERROR_HANDSHAKE_FAILURE_ALERT | (Firefox)ハンドシェイク拒否 | サーバーの証明書と設定を確認 |
よくある質問
「続行する」/「リスクを受け入れる」をクリックしても安全ですか?
リスクを理解しており、信頼できるサイト(例:自己署名証明書を使った自分の開発サーバー)の場合のみ安全です。銀行、EC、メール、SNSサイトでは絶対に警告をバイパスしないでください。この警告は誰かがトラフィックを傍受している可能性があるために存在します。
自分のサイトでこのエラーが表示されます。最速の修正方法は?
GetHTTPSにアクセスし、新しい無料証明書を取得し、インストールしてWebサーバーをリロードしてください。5分で完了します。エラーが続く場合は、エラーコードを確認してください。正確な原因(有効期限切れ、ドメイン不一致、チェーン欠落など)がわかります。
一部のデバイスでのみエラーが表示される場合
通常は証明書チェーンの問題です。サーバーが中間証明書を送信していません。一部のブラウザ/OSは以前のアクセスから中間証明書をキャッシュしていますが、新しいデバイスにはありません。サーバーでfullchain.pemを使用して修正してください。
証明書は有効なのにエラーが表示される場合
以下を確認してください:ドメインの不一致(wwwと非www)、不完全なチェーン、HSTSが以前の障害をキャッシュしている、またはプロキシ/CDNが別の証明書を配信している。openssl s_clientを使用して、サーバーが実際に提示している証明書を確認してください。