CurlからWebサービスにgetリクエストを実行するとエラーが発生しますSSL3_CHECK_CERT_AND_ALGORITHM: dh key too small
。サーバーはCentOS 6.6で実行され、WebサービスはJetty 6で実行されるJavaアプリケーション(OpenJDK 1.7)です。 CentOS 6の寿命が終了したことを認識しており、OSをアップグレードする予定ですが、その間実行するにはCentOS 6が必要です。
同じJavaアプリケーション(OpenJDK 1.7)を使用してCentOS 6.6で実行されている別のサーバーもJetty 6で実行されますが、問題なく他のサイトと統合されます。
コマンドの出力を確認する際に、両方のopenssl s_client -connect 127.0.0.1:443 -tls1_2
システムが異なる一時キーと暗号スイートを使用していることがわかりました。機能しないシステムはDHキーを一時キーとして使用しており、使用されている暗号スイートはですAES128-SHA
。作業システムはECDH
一時キーを使用し、使用される暗号スイートはECDH-RSA-AES128-SHA
。
実行時openssl ciphers -v
に両方のサーバーで使用できるパスワードは同じです。何らかの理由で2つのシステム間で一時キーが異なり、暗号化スイートをテストするときは、他のシステムと比較して1つのシステムではいくつかのキーしか機能しません。
Testing AES256-SHA256...YES
Testing AES256-SHA...YES
...
Testing AES128-SHA256...YES
Testing AES128-SHA...YES
...
Testing RC4-SHA...YES
Testing RC4-MD5...YES
Testing RC4-MD5...YES
他のシステム(ECDH-RSA-AES128-SHA)で実行されるパスワードを含む多くのエラーがあります。
esting ECDH-RSA-AES128-GCM-SHA256...NO (sslv3 alert handshake failure)
Testing ECDH-ECDSA-AES128-GCM-SHA256...NO (sslv3 alert handshake failure)
Testing ECDH-RSA-AES128-SHA256...NO (sslv3 alert handshake failure)
Testing ECDH-ECDSA-AES128-SHA256...NO (sslv3 alert handshake failure)
Testing ECDH-RSA-AES128-SHA...NO (sslv3 alert handshake failure)
Testing ECDH-ECDSA-AES128-SHA...NO (sslv3 alert handshake failure)
設定ファイルを比較しましたが、/etc/pki/tls/openssl.cnf
違いが見つかりませんでした。あるサーバーに別のサーバーと同じ一時キーを使用させるにはどうすればよいですか?