Curl에서 웹 서비스로 get 요청을 실행하면 오류가 발생합니다 SSL3_CHECK_CERT_AND_ALGORITHM: dh key too small
. 서버는 CentOS 6.6에서 실행되고 웹 서비스는 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
두 서버에서 사용 가능한 비밀번호는 동일합니다. 어떤 이유로 두 시스템 간에 임시 키가 다르며 암호화 제품군을 테스트할 때 다른 시스템에 비해 한 시스템에서는 몇 가지 키만 작동합니다.
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
차이점을 찾지 못했습니다. 한 서버가 다른 서버와 동일한 임시 키를 사용하도록 하려면 어떻게 해야 합니까?