ホームページ > Java > &#&チュートリアル > Java は SSL 証明書内のサーバー名をどのように解決しますか?

Java は SSL 証明書内のサーバー名をどのように解決しますか?

Patricia Arquette
リリース: 2024-12-11 20:44:19
オリジナル
311 人が閲覧しました

How Does Java Resolve Server Names in SSL Certificates?

SSL 証明書サーバーの名前解決について

安全な Web 通信の領域では、SSL 証明書はサーバーの ID を検証する上で重要な役割を果たします。 。サーバー名解決プロセスは、HTTPS 接続の信頼を確立するために SSL 証明書で指定された名前がどのように使用されるかを決定します。

SSL 証明書サーバー名はどのように解決されますか?

RFC 2818 およびその後継となる RFC 6125 では、サーバー名検証のガイドラインが定義されています。これらの標準では、次のことが指定されています。

  • 証明書に「dNSName」タイプの「subjectAltName」拡張子が含まれている場合、それを ID として使用する必要があります。
  • それ以外の場合は、共通名 (証明書の「件名」セクションの CN) フィールドが使用されます。

Java のSSL 証明書検証メカニズム

Java の SSL メカニズムは subjectAltName 拡張子の優先順位に従います。証明書にこの拡張子が含まれている場合、Java は指定されたドメイン名または IP アドレスを検証用の ID として使用します。それ以外の場合は、CN フィールドの使用に戻ります。この動作は、RFC 2818 で概説されている推奨ベスト プラクティスに従っています。

Keytool を使用した代替名の追加

はい、SSL に代替名を追加することができます。 keytool を使用して証明書を作成します。 Java 7 以降、keytool に「-ext」オプションが導入されました。これにより、証明書にサブジェクト代替名 (SAN) を含めることができます。要件に基づいて、SAN を「dns:www.example.com」または「ip:10.0.0.1」として指定できます。

代替としての OpenSSL

keytool の使用に慣れていない場合は、SAN で SSL 証明書を生成するための OpenSSL が優れたオプションです。 openssl.cnf 構成ファイルを変更すると、「[req]」セクションと「[ v3_req ]」セクションを使用して subjectAltName 拡張子を指定できます。さらに、OPENSSL_CONF 環境変数を使用して、構成ファイルの明示的な場所を指定できます。

問題を解決するには、証明書に正しいサーバー名が含まれていることを確認する必要があります。 CN フィールドに IP アドレスのみが含まれている場合、ブラウザはそれらを受け入れる可能性がありますが、SAN がないため Java はそれらを信頼しません。 keytool または OpenSSL を使用して証明書に SAN を追加すると、ブラウザと Java の両方がサーバー名を正しく認識できるようになります。

以上がJava は SSL 証明書内のサーバー名をどのように解決しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート