Google Chrome で自組織のCAで署名したSSL証明書のサイトにアクセスすると NET::ERR_CERT_COMMON_NAME_INVALID エラーメッセージが表示される - Windows
Google Chrome で自組織のCAで署名したSSL証明書のサイトにアクセスすると NET::ERR_CERT_COMMON_NAME_INVALID エラーメッセージが表示される現象について紹介します。
現象の確認
自組織のCAで署名したSSL証明書を利用したWebサイトを作成します。作成したWebサイトにMicrosoft Edgeでアクセスします。Webページが表示されます。
Internet Explorer でアクセスします。こちらも問題なくページが表示されます。
しかし、Google Chromeでアクセスするとエラーになり、下図の画面が表示されます。"NET::ERR_CERT_COMMON_NAME_INVALID" メッセージが表示されます。
エラー画面の[詳細設定]をクリックします。詳細情報が表示されます。詳細画面の一番下部の [(ドメイン名) にアクセスする (安全ではありません)]のリンクをクリックします。
Webページが表示できますが [保護されていない通信] のワーニングが表示されます。
[保護されていない通信]をクリックすると、接続が保護されていない旨のメッセージが表示され、証明書が無効の表示となっています。
原因
Google Chromeのエラー画面の詳細メッセージにも記載がありますが、Google Chrome ではアクセスするドメイン名の証明書の一般名(CN)を判定せず、SAN(Subject Alternative Name)のDNS Nameの値でアクセスするドメインとの一致を判定する動作になっているためです。
Internet ExplorerやMicrosoft Edge(EdgeHTML版) では証明書の一般名(CN)とアクセスするドメインが一致していればエラーは発生しませんが、Google Chromeでは証明書の一般名(CN)とアクセスするドメインの一致は判定されず、SAN(Subject Alternative Name)のDNS Nameの値とアクセスするドメインが一致していないとエラーメッセージが表示されます。
先ほどのエラー画面の[保護されていない通信]をクリックして表示されるドロップダウンウィンドウで、[証明書 (無効)]の濃い項目をクリックします。
証明書のダイアログが表示されます。上部のタブの[詳細]をクリックします。フィールドの一覧が表示されます。エラーが出ている証明書ではSAN(Subject Alternative Name)(サブジェクト代替名) のフィールドがありません。
対処法
SAN(Subject Alternative Name)(サブジェクト代替名) のフィールドにDNS Nameの値を設定した証明書を作成します。SANのフィールドを設定した証明書の作成方法は
こちらの記事を参照してください。
動作確認
SAN(Subject Alternative Name)(サブジェクト代替名) のフィールドにDNS Nameの値を設定した証明書をWebサイトにバインドします。Chromeでサイトにアクセスします。エラーは表示されずページが表示できました。
錠前のアイコンをクリックします。下図のポップアップウィンドウが表示されます。「この接続は保護されています」のメッセージが表示されます。
先のポップアップウィンドウの[証明書 (有効)]の項目をクリックします。証明書のダイアログが表示されます。[詳細]タブをクリックしタブを切り替え、フィールドの一覧を確認します。フィールドに[サブジェクト代替名]の項目があり、DNS Nameの値が設定されています。アクセスしているサイトのドメイン名とDNS Nameの値が一致していればエラーが発生しないことが確認できます。
以上で、Google Chromeで自組織のCAで署名したSSL証明書のサイトにアクセスすると NET::ERR_CERT_COMMON_NAME_INVALID エラーメッセージが表示される現象の対処ができました。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。