>  기사  >  데이터 베이스  >  MySQL에 연결할 때 Java 애플리케이션에서 \"공개 키 검색이 허용되지 않습니다\" 예외가 발생하는 이유는 무엇입니까?

MySQL에 연결할 때 Java 애플리케이션에서 \"공개 키 검색이 허용되지 않습니다\" 예외가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-01 09:08:30343검색

Why Does My Java Application Throw a

연결 Java - MySQL: "공개 키 검색이 허용되지 않음" 예외 문제 해결

MySQL 데이터베이스에 대한 연결을 설정하려고 할 때 Java 커넥터 8.0.11을 사용하는 경우 개발자는 "공개 키 검색이 허용되지 않습니다" 예외가 발생할 수 있습니다. 이 오류는 연결 핸드셰이크 프로세스 중에 발생하며 클라이언트(Java 애플리케이션)가 인증을 위해 서버에서 공개 키를 얻을 권한이 없음을 나타냅니다.

예외 원인

Java 애플리케이션이 사용자 비밀번호와 같은 민감한 정보를 암호화하고 전송하는 데 사용되는 서버의 공개 키를 검색하려고 할 때 예외가 발생합니다. 기본적으로 MySQL은 잠재적인 중간자(MITM) 공격을 방지하기 위해 공개 키 검색을 허용하지 않습니다.

해결 방법

이 문제를 해결하려면 Java 애플리케이션 데이터베이스 연결을 설정할 때 공개 키 검색을 허용하도록 명시적으로 구성해야 합니다. 이는 JDBC 연결 문자열의 일부로 allowedPublicKeyRetrieval=true 매개변수를 지정하여 달성할 수 있습니다.

다음은 AllowPublicKeyRetrieval 매개변수를 포함하는 JDBC 연결 문자열의 예입니다.

jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true

참고: 공개 키 검색을 활성화하면 연결이 보안 채널(예: HTTPS)을 통하지 않는 경우 클라이언트가 MITM 공격에 취약해져서 잠재적인 보안 위험이 발생할 수 있습니다. 개발 및 테스트 목적으로 SSL을 비활성화하고 연결 문자열에 useSSL=false를 명시적으로 지정하는 것이 더 안전할 수 있습니다.

jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true&useSSL=false

추가 팁

문제가 있는 경우 AllowPublicKeyRetrieval=true를 지정했음에도 불구하고 지속되는 경우 다음 추가 조치를 시도해 보십시오.

  • MySQL 서버의 SSL/TLS 구성이 올바르게 구성되었는지 확인하세요.
  • Java 애플리케이션이 최신 버전을 사용하고 있는지 확인하세요. MySQL JDBC 커넥터 버전.
  • 네트워크 관련 차단을 제거하려면 방화벽을 (일시적으로) 비활성화하십시오.
  • 깨끗한 연결 설정을 위해 MySQL 서비스를 다시 시작하십시오.

위 내용은 MySQL에 연결할 때 Java 애플리케이션에서 \"공개 키 검색이 허용되지 않습니다\" 예외가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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