SSLのkey usage incompatibleエラー原因と対処法を詳しく解説

目次

はじめに

本記事の目的

この章では、本記事の目的と構成を分かりやすく説明します。ERR_SSL_KEY_USAGE_INCOMPATIBLEというエラーに悩む方が、原因を理解し、適切な対処法を見つけられるように案内します。特にブラウザのセキュリティポリシー変更や、Windows環境での対応に重点を置いています。

誰に向けた記事か

・Webサイトを運用している管理者の方
・ローカルで開発中のエンジニアや初心者の方
・ブラウザで閲覧中にSSL/TLS関連のエラーが出た一般ユーザー
専門的な知識がなくても読み進められるよう、専門用語は最小限にし、具体例を交えて説明します。

本記事で学べること

  1. エラーの本質と意味
  2. 主な原因と見分け方
  3. ユーザー側で試せる対処法
  4. 管理者側で行うべき設定や証明書の生成方法(自己署名証明書を含む)

読み進め方のアドバイス

まず第2章でエラーの概要を確認してください。原因が分かれば、第4章と第5章の対処法のうち適切な方法に進んでください。具体的なコマンドや手順は、主にWindows環境での手順を中心に記載します。

ERR_SSL_KEY_USAGE_INCOMPATIBLEエラーとは何か

表示される症状

ERR_SSL_KEY_USAGE_INCOMPATIBLEは、ブラウザでサイトにアクセスしたときに出る接続エラーです。画面には「This site can’t be reached」や「安全な接続ができません」と表示され、サイトに入れなくなります。主にChromeやEdgeで報告されます。

エラーの意味(簡単な説明)

このエラーは、サーバーのSSL/TLS証明書とブラウザが期待する使い方が合っていないことを示します。たとえば、証明書の鍵が「署名用」に限定されているのに、ブラウザがそれを暗号化(通信の鍵交換)に使おうとすると発生します。難しい言葉でいうと“鍵使用(key usage)の不一致”です。

どんな場面で起きやすいか

  • サーバー側で証明書を誤って設定したとき
  • 古いツールで証明書を作成したとき
  • ブラウザが最近のセキュリティ方針で厳格化された後

短く言うと、証明書の「使い方」とブラウザの「期待」が食い違っているために起きるエラーです。次章で原因を詳しく見ていきます。

エラーの主な原因

サーバー側の原因

  • 証明書の有効期限切れ
  • 期限切れの証明書はブラウザが信頼できないと判断します。例えば、サイト管理者が更新を忘れると接続が拒否されます。
  • 無効または不正な証明書
  • 自署名証明書や誤った発行元の証明書は信頼チェーンが成立せずエラーになります。例:社内で作った自己署名証明書を公開サイトで使う場合。
  • Key Usage(鍵用途)設定の不備
  • 証明書の「サーバー認証」が有効でないと、ブラウザはその証明書をサーバーの識別に使えません。結果としてERR_SSL_KEY_USAGE_INCOMPATIBLEが出ます。
  • SAN(Subject Alternative Name)の設定不備
  • 証明書にアクセス先のドメインが含まれていないと、名前の不一致で接続を拒否します。例えば example.com 用の証明書に www.example.com が入っていない場合。
  • 複数サーバー間での不一致
  • ロードバランサーや複数のWebサーバーで証明書設定が揃っていないと、特定のサーバーに当たった時だけエラーが発生します。例:ステージング用の古い証明書を誤って本番の一台に残す場合。

クライアント側の原因

  • 古いOSやブラウザ
  • 旧バージョンは新しい暗号方式や証明書フォーマットを理解できず接続を拒否します。例:古いAndroidや古いWindows版のブラウザ。
  • ブラウザキャッシュに古い証明書情報が残る
  • ブラウザが以前の(無効な)証明書情報を保持していると、新しい正しい証明書でもエラーになることがあります。キャッシュ削除で直る場合があります。

ユーザー側での解決方法

以下は一般ユーザーが試せる対処法を分かりやすくまとめた手順です。順に試してください。

1. OS とブラウザを最新にする

まずお使いのパソコンやスマートフォンのOSと、使用中のブラウザを最新バージョンに更新してください。古いOS(例:Windows 7)は最新の暗号化方式に対応していないことがあります。必要ならOSの新しいバージョンへのアップグレードを検討してください。

2. ブラウザのキャッシュをクリアする

ブラウザのキャッシュやクッキーが古い情報を保持していると、証明書の読み込みに失敗することがあります。設定からキャッシュとクッキーを削除して、ページを再読み込みしてください。

3. 別のブラウザや端末で試す

Chromeでエラーが出る場合はEdgeやFirefox、スマートフォンのブラウザなど別の環境でアクセスしてみてください。これにより問題が端末固有かサイト側かを切り分けできます。

4. Webサイト管理者に連絡する

上記で解決しない場合は、そのサイトの運営者やサポートへ連絡してください。発生しているエラー名(ERR_SSL_KEY_USAGE_INCOMPATIBLE)と、試した手順を伝えると対応が早くなります。

5. 緊急的に進む方法(推奨しない)

一部のブラウザではエラー画面の詳細設定から「続行」できる場合があります。ただし証明書に問題があるため安全性が低下します。どうしても必要な場合を除き、この方法は使わないことをおすすめします。

Webサイト管理者側での解決方法

まず行うべき基本作業

  • 証明書の有効期限と状態を確認します。期限切れや失効が原因なら、更新または再発行します。
  • 公開サイトは信頼できる認証局(CA)から取得することを推奨します。社内向けのみなら自己署名も可能ですが、利用者端末にルート証明書を配布してください。

自己署名証明書をPowerShellで作る(例)

以下は一般的な手順例です。管理者権限のPowerShellで実行します。
1) 証明書の作成
New-SelfSignedCertificate -DnsName “www.example.com”,”example.com” -CertStoreLocation “cert:\LocalMachine\My” -KeyAlgorithm RSA -KeyLength 2048 -KeyUsage DigitalSignature,KeyEncipherment -EnhancedKeyUsage “Server Authentication” -NotAfter (Get-Date).AddYears(1)

2) PFXとしてエクスポート(パスワードを設定)
$pwd = ConvertTo-SecureString -String “yourP@ssw0rd” -Force -AsPlainText
$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like “CN=www.example.com” }
Export-PfxCertificate -Cert $cert -FilePath “C:\certs\example.pfx” -Password $pwd

インストールと設定

  • 作成した証明書を対象サーバーの証明書ストアにインポートします。
  • IISなどのWebサーバーではサイトのバインドでHTTPSを選び、該当証明書を割り当てます。
  • 設定後、Webサーバーを再起動して反映させます(例: iisreset)。

追加チェック項目

  • キー使用法(Key Usage)にDigital SignatureおよびKey Enciphermentが含まれるか確認します。
  • EKU(拡張キー使用法)にServer Authenticationがあるか確認します。
  • 中間証明書が欠けていないか、チェーンが正しく構築されているかを確認します。
  • ブラウザやopensslで接続確認を行い、警告が出ないか確かめます(例: openssl s_client -connect www.example.com:443 -showcerts)。

必要に応じて、認証局に再発行を依頼するか、自己署名を使う場合は配布手順を整えると安全です。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次