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

Susan Sarandon
풀어 주다: 2024-11-01 09:08:30
원래의
342명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!