:
현재 데이터베이스 구성으로이 가정 작업.
먼저 CA 인증서는 JDK와 함께 제공되는 keytool을 사용하여 Java 키 저장소 파일로 가져와야합니다. 이 경우 KeyStore에는 신뢰하려는 모든 CA 인증서가 포함됩니다. Amazon RDS의 경우 CA 인증서는 here입니다. 작업 디렉토리에 mysql-ssl-ca-cert.pem
, 당신은 다음과 같은 명령을 실행할 수 있습니다 : 당신이 인증서를 신뢰하려면 당신이 키 스토어 암호를 입력하라는 메시지와 요청 후 truststore.jks
라는 새로운 자바 키 스토어 파일을 만듭니다
keytool -import -alias mysqlServerCACert -file mysql-ssl-ca-cert.pem -keystore truststore.jks
(예 , 너). 이미 truststore 파일이있는 경우, 동일한 명령을 실행하여
truststore.jks
을 기존 KeyStore의 경로로 바꾸십시오 (대신 기존 KeyStore의 암호를 묻는 메시지가 표시됨). 나는 보통
conf
디렉토리에
truststore.jks
을 배치한다.
둘째, application.conf
에서 당신은 데이터베이스 URL에 몇 JDBC URL 매개 변수를 추가해야합니다
verifyServerCertificate=true
이 - 호스트 인증서를 확인할 수없는 경우 연결을 거부.
useSSL=true
- SSL을 사용하여 연결합니다.
requireSSL=true
- MySQL 서버가 SSL을 지원하지 않는 경우 연결을 거부합니다.
예를 들어, 현재 데이터베이스 URL 인 경우 :
다음
db.default.url="jdbc:mysql://url.to.database/test_db"
은 지금해야합니다 :
db.default.url="jdbc:mysql://url.to.database/test_db?verifyServerCertificate=true&useSSL=true&requireSSL=true"
마지막 때 통과해야하는 몇 가지 명령 줄 옵션이 있습니다 Play 서버를 시작하여 truststore를 구성합니다. MySQL-Connector/J가 사용합니다. 가정 내 truststore.jks
파일은 conf
디렉토리에있는 암호는이 같은 (dev에 모드에서) 내 서버를 시작 것, password
이다이 외에도
activator run -Djavax.net.ssl.trustStore="conf/truststore.jks" -Djavax.net.ssl.trustStorePassword="password"
는 또한 만들 좋아 SSL을 사용하지 않고 데이터베이스에 연결할 수 없다는 점을 명심하십시오. 옵션이 어떻게 든 응용 프로그램 수준에서 엉망이 될 경우에 대비하십시오.
GRANT USAGE ON *.* TO 'root'@'%' REQUIRE SSL;
FLUSH PRIVILEGES;
참고 :이 프레임 워크를 재생하기 위해 특정 아닌, 일반적인 자바의 더/MySQL의 일 –