>Java >java지도 시간 >Java SSL 핸드셰이크가 'DH 키 쌍을 생성할 수 없습니다' 오류와 함께 실패하는 이유는 무엇입니까?

Java SSL 핸드셰이크가 'DH 키 쌍을 생성할 수 없습니다' 오류와 함께 실패하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-09 13:53:10438검색

Why Does My Java SSL Handshake Fail with a

SSL 핸드셰이크에서 "DH 키 쌍을 생성할 수 없습니다." 예외가 발생하는 이유는 무엇입니까?

다음과 같은 특정 IRC 서버와 SSL 연결을 시도할 때 조리개.esper.net:6697, 예외가 발생합니다: "DH를 생성할 수 없습니다. keypair."

이 예외는 DH(Diffie-Hellman) 키 교환에 큰 소수 크기를 사용하는 서버의 기본 암호화 방법에서 비롯됩니다. 기본적으로 Java는 최대 1024비트의 DH 키 크기를 허용하지만 문제의 서버가 더 큰 소수 크기를 사용하여 예외가 발생합니다.

근본 원인:

문제의 근본 원인은 Java SSL 구현의 허용 가능한 최대 DH 키 크기(1024비트)와 서버가 선호하는 더 큰 소수 간의 불일치입니다.

해결 방법:

이 문제를 해결하려면 다음 해결 방법 중 하나를 사용할 수 있습니다.

  • BouncyCastle의 JCE 구현: JDK 버그 보고서 JDK-6521495에서 언급했듯이, 기본 Java JCE 구현을 더 큰 DH 키 크기를 허용하는 BouncyCastle 구현으로 대체할 수 있습니다.
  • Java 9 이상 사용: 이 버그에 대한 수정 사항인 JDK-7044060이 구현되었습니다. Java 9 이상에서는 DH 키 크기를 최대 2048까지 허용합니다. 비트.

참고: 서버의 DH 키 크기가 2048비트보다 큰 경우에도 BouncyCastle 해결 방법을 사용하거나 Java 8의 JDK-8072452 수정이 완료될 때까지 기다려야 합니다. 석방됩니다.

위 내용은 Java SSL 핸드셰이크가 'DH 키 쌍을 생성할 수 없습니다' 오류와 함께 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.