web-dev-qa-db-ja.com

エラー「ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEY」を回避するには、どのアルゴリズムを使用すればよいですか?

Tomcat Webサーバーに証明書を適用した後、GoDaddyからCSRを送信してCA証明書を取得しました。 ChromeまたはMozillaを使用してWebサイトにアクセスすると、次のエラーが発生します。

ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEY

CSR生成プロセスに対して次のコマンドを呼び出しました。

 keytool -genkey -alias mydomain -keyalg RSA -keystore mydomain.jks -keysize 2048 -sigalg SHA256withRSA
 keytool -certreq -alias mydomain -sigalg SHA256withRSA -keystore mydomain.jks -file mydomain.csr

どうすればこれを解決できますか?

1
Muhammad

この警告は、一時的なDiffie Hellman鍵交換に使用されるグループのサイズが小さすぎるために発生します。非常に小さいため、学者は対称鍵を抽出できます。

証明書は、DHEに使用されるグループのサイズには影響しません。 Webサーバーの構成が行います。

現在のところ、ビット単位のグループサイズは、証明書のRSAキーと同じ大きさであることが推奨されています。通常は2048ビットで、いずれの場合も1024ビット以上にする必要があります。また、独自のグループを生成する必要があります。定義済みのグループを使用しないでください。そうしないと、1024ビットでは不十分です。

サーバーが意図的に弱い「エクスポート」暗号をサポートしていないことを確認してください。つまり、512ビットを意味します。

Qualysツール を使用して、サーバー構成を確認します。

Java docs

2
Z.T.

最も簡単な修正は、JavaバージョンをJava 8 as Java 7がEOL(サポート終了)に達したため、 )2015年4月。
また、それが機能せず、JDK 1.8を使用している場合は、ハンドシェイクでより強いキーサイズを確保するために、システムプロパティ-Djdk.tls.ephemeralDHKeySize=2048を設定することをお勧めします。 Java 8のドキュメントを参照してください

Edit以下は、HTTPSコネクタ内のTomcat server.xmlで必要になる可能性がある強力な暗号のリストです。

暗号= "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_256_CBC_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA"

編集2

Java_HOMEパス変数を確認してください。Javaの古いバージョン、つまりjdk 1.7未満を指している可能性があります。

私のJava_HOMEがjdk1.6を指していたのと同じ問題に直面していたので、Java_HOMEを修正してこれを修正しました

2
Mohsin Khan