ADVERTISEMENT

【Edge】「ERR_CERT_NON_UNIQUE_NAME」が内部.localドメインEdgeで出る時のホスト名適正化手順

【Edge】「ERR_CERT_NON_UNIQUE_NAME」が内部.localドメインEdgeで出る時のホスト名適正化手順
🛡️ 超解決

社内ネットワークで内部ドメイン「.local」を使用している環境で、Microsoft Edgeから内部Webサイトにアクセスすると、「ERR_CERT_NON_UNIQUE_NAME」というエラーが表示されることがあります。このエラーは、証明書のSubject Alternative Name(SAN)にアクセスに使用するホスト名が適切に含まれていないことが原因です。本記事では、証明書のホスト名を適正化してこのエラーを解消する手順を解説します。

【要点】内部.localドメインでの「ERR_CERT_NON_UNIQUE_NAME」を解消するホスト名適正化のポイント

  • 証明書の再発行: 証明書のSANにアクセスに使用するホスト名(短い名前)と完全修飾ドメイン名(FQDN)の両方を追加します。
  • ブラウザキャッシュのクリア: 再発行後、Edgeの証明書キャッシュをクリアして新しい証明書を読み込ませます。
  • 暫定対応(非推奨): すぐに証明書を変更できない場合、Edgeの設定で証明書の失効確認を無効にすることでエラーを回避できますが、セキュリティは低下します。

ADVERTISEMENT

「ERR_CERT_NON_UNIQUE_NAME」が発生する原因

EdgeはHTTPS接続時に、サーバーから提示された証明書のSANをチェックします。ブラウザのアドレスバーに入力したホスト名が、SAN内のいずれかのエントリと一致しない場合、このエラーが発生します。内部.localドメインでは、ユーザーがホスト名のみでアクセスすることが多いため、証明書にFQDNが含まれていないとエラーになります。また、同じホスト名を持つ証明書が複数存在する場合もエラーの原因となります。

具体的には、証明書のCNに「fileserver」と設定され、SANに何も追加されていないケースや、SANに「fileserver.contoso.local」のみで短い名前がないケースで発生します。さらに、証明書テンプレートのデフォルト設定がCNのみをサブジェクトとする場合、CAが自動生成した証明書にSANが含まれないことが原因です。同一サーバーに複数の証明書がインストールされている場合も、競合によりエラーが起きます。

内部CAが発行する証明書のサブジェクト名は、Active Directoryのコンピュータ名に依存することが多いです。デフォルトではコンピュータ名のみがCNに設定され、DNSサフィックスが付与されないため、FQDNがSANに含まれません。管理者が証明書要求時にSANを明示的に追加していないケースがほとんどです。

さらに、ブラウザが証明書の検証を行う際、EdgeはWindowsの証明書ストアだけでなく、インターネット一時ファイルやCookieにもキャッシュを持ちます。そのため、証明書を更新した後も古い情報が残っているとエラーが続くことがあります。

Edgeは証明書の検証にWindowsのCryptoAPIを利用します。Windowsは証明書ストア内のすべての証明書をチェックし、アクセス先のホスト名と証明書のSANを比較します。通常、CN(共通名)は使用されなくなり、SANが優先されます。そのため、CNのみでSANがない証明書はエラーになります。また、同一ホスト名を持つ証明書が複数ある場合も、「非一意な名前」としてエラーになります。

お探しの解決策が見つからない場合は、こちらの「Microsoft Edgeトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

証明書のホスト名適正化手順

1. 現在の証明書の内容を確認する

  1. Edgeで証明書を表示します
    エラーが発生するURLにアクセスし、アドレスバーの鍵アイコンをクリックします。「接続はセキュアです」を選択し、「証明書」をクリックします。「詳細」タブで「サブジェクト代替名」フィールドを確認します。そこに記載されたホスト名の一覧と、実際にアクセスに使っているホスト名を比較します。
  2. サーバー側の証明書ストアを確認します
    サーバーにログインし、certlm.msc(ローカルコンピュータ証明書)を開きます。「個人」ストアにインストールされている証明書をダブルクリックし、「詳細」タブでSANを確認します。同じホスト名を持つ重複証明書がないかもチェックします。

2. 内部CAで新しい証明書を発行する

  1. 証明書テンプレートを選択します
    内部CAの管理コンソール(certsrv.msc)で、使用する証明書テンプレートがSANをサポートしているかを確認します。「Webサーバー」テンプレートは通常SANに対応しています。必要に応じてテンプレートを複製し、SAN許可の設定を有効にします。
  2. 証明書要求(CSR)を生成します
    サーバー上でIISマネージャーを開き、サーバー証明書の「証明書要求の作成」からCSRを生成します。共通名(CN)にはホスト名(例:fileserver)を入力します。その後、証明書要求のプロパティで「サブジェクト代替名」を追加し、fileserver.contoso.local(FQDN)も含めます。opensslを使用する場合は、設定ファイルにsubjectAltName=DNS:fileserver,DNS:fileserver.contoso.localと記述します。
  3. CAに証明書を発行してもらいます
    生成したCSRをファイルに保存し、内部CAのWeb enrollmentページ(http://ca-server/certsrv)にアップロードするか、mmcスナップインを使って要求を送信します。CA管理者が承認後、証明書をダウンロードします。

3. 新しい証明書をサーバーに適用する

  1. 証明書をインストールします
    ダウンロードした証明書(.cerファイル)をサーバーに保存し、IISマネージャーの「サーバー証明書」セクションで「証明書の完了」を選択してインストールします。
  2. Webサイトのバインドを変更します
    該当のWebサイトを選択し、「バインド」を編集します。HTTPSのバインドで、先ほどインストールした証明書を選択します。既存の証明書と置き換わっていることを確認します。
  3. サービスの再起動
    IIS全体を再起動するには、管理者コマンドプロンプトでiisresetを実行します。または、該当のアプリケーションプールを再起動します。

4. クライアント側のEdgeでキャッシュをクリアする

  1. Edgeの閲覧データを削除します
    Edgeの設定画面を開き、「プライバシー、検索、サービス」>「閲覧データをクリアする」>「クリアするデータの選択」で「キャッシュされた画像とファイル」と「Cookieとその他のサイトデータ」にチェックを入れます。期間は「全期間」を選択し、「今すぐクリア」をクリックします。
  2. 証明書キャッシュを削除します
    管理者としてコマンドプロンプトを開き、certutil -urlcache * deleteを実行して、端末にキャッシュされたすべての証明書を削除します。その後、Edgeを再起動して該当サイトにアクセスします。

5. 証明書テンプレートの設定を見直す

  1. テンプレートの複製と変更
    CAの管理コンソールで「証明書テンプレート」ノードを開き、既存の「Webサーバー」テンプレートを右クリックして複製します。新しいテンプレートの「サブジェクト名」タブで、「サブジェクト代替名にDNS名を含める」にチェックを入れます。また、「要求に含まれる」オプションも選択し、CSRにSANを含められるようにします。
  2. テンプレートを発行します
    複製したテンプレートを「証明書テンプレート」フォルダに追加し、CAの「証明書テンプレートの追加」で一覧に表示されるようにします。その後、テンプレートのセキュリティ権限で、証明書を要求するユーザーやコンピュータに「読み取り」と「登録」を許可します。

注意点と代替対処法

証明書を再発行してもエラーが消えない場合

まず、複数の証明書に同じホスト名が含まれていないか確認します。サーバー側の個人ストアに不要な証明書があれば削除し、該当の証明書だけが正しいSANを持っている状態にします。また、クライアント端末の証明書ストア(certmgr.msc)にも古い証明書が残っている場合は削除します。

さらに、Edgeの内部DNS設定やイントラネットゾーンの設定が影響している可能性もあります。インターネットオプションの「セキュリティ」タブで「ローカルイントラネット」ゾーンに該当サイトを追加してみてください。ただし、この方法は根本解決ではありません。

一時的な回避策(セキュリティを低下させます)

証明書の再発行がすぐにできない場合、Edgeの証明書失効確認を無効にすることでエラーを一時的に回避できます。インターネットオプションの「詳細設定」タブで「サーバー証明書の失効を確認する」のチェックを外します。この設定は社内ネットワークのみに限定して適用することを強くお勧めします。なお、この操作は管理者権限が必要で、グループポリシーで強制されている場合は変更できません。

旧証明書の削除手順

サーバーの証明書ストアから古い証明書を削除するには、certlm.mscを開き、該当する証明書を右クリックして「削除」を選択します。削除後は必ずIISを再起動してください。クライアント端末でも同様に、certmgr.msc(ユーザー証明書)またはcertlm.msc(コンピュータ証明書)で不要な証明書を削除します。

イベントログの確認

問題が解決しない場合、イベントビューアーで「アプリケーションとサービスログ」>「Microsoft」>「Windows」>「CertificateServices」のログを確認します。証明書の検証エラーに関するイベントID 47や48が記録されていることがあります。これらのログは、原因特定の手がかりになります。

他のブラウザでの挙動

Google ChromeやFirefoxでも同様のエラーが発生することがあります。エラーメッセージは異なる場合もありますが、根本原因は証明書のSAN不足です。したがって、証明書の適正化はすべてのブラウザに有効です。

ADVERTISEMENT

証明書のホスト名設定によるエラー発生の比較

項目 ホスト名のみの証明書 FQDNを含む証明書
エラー発生条件 ホスト名アクセスでエラー エラーなし
対応する接続方法 FQDNアクセスのみ可能 ホスト名・FQDN双方対応
ブラウザ互換性 Edgeでエラーが出る 全ブラウザで正常
推奨度 非推奨 推奨
管理の手間 低い(手軽だがトラブルあり) 中程度(CSRでSAN指定が必要)

まとめ

本記事では、内部.localドメインでEdgeに「ERR_CERT_NON_UNIQUE_NAME」が表示される問題の原因と、証明書のホスト名適正化手順を解説しました。原因は証明書のSANにアクセスに使うホスト名が不足していることです。解決するには、内部CAで証明書を再発行し、SANにホスト名とFQDNの両方を含め、クライアントのキャッシュをクリアします。次に、社内の他の内部Webサイトでも同様のエラーがないか確認し、証明書の適正化を進めてください。これにより、EdgeでのHTTPS接続が安定します。また、証明書テンプレートのデフォルト設定を修正しておくことで、再発を防止できます。


🧭
Microsoft Edgeトラブル完全解決データベース ページが開かない・パスワードが消えた・動作が重いなど、Edgeの困りごとを設定・仕組みから即解消。逆引きリファレンスとして活用してください。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT