집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에 연결할 때 Java 애플리케이션에서 \'공개 키 검색이 허용되지 않습니다\' 예외가 발생하는 이유는 무엇입니까?
연결 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에 연결할 때 Java 애플리케이션에서 \'공개 키 검색이 허용되지 않습니다\' 예외가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!