평범한 이야기들

[Mysql] Public key retrieval is not allowed 에러 해결 본문

평범한 개발 이야기/ETC

[Mysql] Public key retrieval is not allowed 에러 해결

songsariya 2023. 4. 18. 10:10
728x90

 평소에 Mysql 5 버전을 사용할 때에는 큰 문제가 되지 않았지만 8 버전부터는 보안적인 이슈로 인해 useSSL 옵션에 대한 추가적인 설정이 존재합니다.

Public key retrieval is not allowed

 사용하시는 Mysql 이 8.0 버전이면서 public key retrieval is not allowed에러가 발생한다면 다음과 같은 옵션을 확인해보셔야 합니다.

  • useSSL: DB에 SSL로 연결
  • allowPublicKeyRetrieval: 서버에서 RSA 공개키를 검색하거나 가져와야 하는지

 

에러 발생 원인

에러가 발생하는 원인은 useSSL=false로 설정하고 allowPublicKeyRetrieval 설정을 하지 않은 경우입니다.

따라서 아래와 같이 설정해 주시면 해결하실 수 있습니다.

 

1. 접속 URL 설정

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

접속하는 datasource URL에 쿼리 파라미터로 위와 같이 설정해 주시면 됩니다.

 

 

2. 드라이버에서 설정

저는 DBeaver 프로그램을 사용하는데 접속정보에서 수정하실 수 있습니다.

 

3. 인증서가 존재할 시

 MySQL 설정 파일(my.cnf)에서 SSL 관련 설정을 수정해야 합니다. SSL 인증서를 사용하지 않는다면 SSL 관련 설정을 주석 처리하거나 삭제하면 됩니다. 하지만 SSL 인증서를 사용하는 경우에는 MySQL 설정 파일에서 다음과 같은 설정을 추가해주어야 합니다.

ssl-ca=/path/to/ca-cert.pem

위 설정에서 /path/to/ca-cert.pem은 SSL 인증서의 경로를 지정하는 부분입니다. 이 경로는 실제 SSL 인증서가 저장된 경로로 수정해주어야 합니다. 설정을 변경한 후 MySQL 서버를 재시작하면 "Public key retrieval is not allowed" 에러가 해결됩니다.

728x90
Comments