미니옵빠의 code stubs
Apache 2.4 SSL 인증서 DH Parameter 이슈 본문
Apache 2.4 + SSL을 사용할 때, Java Client에서 요청 시
javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024
또는
ProtocolException
등이 뜰 경우 (두번째 Exception은 사실 상세 로그없이 Exception만 덜렁 찍은 거긴 하지만)
Custom DH parameter 를 추가해서 해결할 수 있다.
1. custom DH parameter 생성
openssl dhparam 1024
그러면 아래와 같이 값이 나옴. 아래 내용을 전체 복사
-----BEGIN DH PARAMETERS-----
XXXXXX
-----END DH PARAMETERS-----
2. SSLCertificateFile 에 설정된 .pem 파일 하단에 복사한 내용 추가. 아래와 같은 모습
-----BEGIN CERTIFICATE-----
YYYYYY
-----END CERTIFICATE-----
-----BEGIN DH PARAMETERS-----
XXXXXX
-----END DH PARAMETERS-----
3. Apache restart. 완료
Java 7 이하 버전에서 DH prime size를 최대 1024 bits 까지로 제한하기 때문이라고 함.
참고: http://httpd.apache.org/docs/current/ssl/ssl_faq.html#javadh