2017-10-16 6 views
1

J'ai créé une base de données Postgres sur une instance Amazon RDS avec SSL activé. L'instance peut être accédée avec la ligne de commande en utilisant le fichier cert fourni par Amazon (.pem). Maintenant, je veux me connecter à la base de données dans une application Spring Boot. A fait quelques recherches, il semble que je dois installer le cert dans keystore avec keytool commande Import PEM into Java Key Store. J'ai donc exécuté les commandes suivantes pour générer une clé jks.Comment se connecter aux postgres RDS dans Spring Application de démarrage avec SSL activé

openssl x509 -outform der -in rds-combined-ca-bundle.pem -out aws-cert.der 
keytool -import -alias rds-key -keystore rds.jks -file aws-cert.der 
keytool -list -keystore rds.jks 

J'ai aussi couru commande keytool -list -keystore rds.jks à la liste keystore pour validation.

Keystore type: JKS 
Keystore provider: SUN 

Your keystore contains 1 entry 

rds-key, Oct 16, 2017, trustedCertEntry, 
Certificate fingerprint (SHA1): E8:11:88:56:E7:A7:CE:3E:5E:DC:9A:31:25:1B:93:AC:DC:43:CE:B0 

Après avoir copié le fichier rds.jks à/src/main/ressources, j'ai ajouté les lignes suivantes dans application.properties pour ssl:

server.ssl.enabled=true 
server.ssl.key-alias=rds-key 
server.ssl.key-password=xxx111 
server.ssl.key-store=classpath:rds.jks 
server.ssl.key-store-provider=SUN 
server.ssl.key-store-type=JKS 

Cependant, je suis l'erreur:

java.lang.IllegalArgumentException: java.io.IOException: Alias name [rds-key] does not identify a key entry 

Pourquoi le keystore ne fonctionne-t-il pas?

Répondre

0

La configuration du magasin de clés/trusts SSL pour l'application de démarrage à ressort prépare le contexte ssl utilisé par les connexions https entrantes/sortantes. Vous devrez configurer la fabrique de socket SSL différemment pour les connexions dg postgres. Utilisez l'implémentation fournie par postgres lib ou créez votre propre classe SSLSocketFactory personnalisée qui prépare le contexte ssl à l'aide de votre fichier de clés spécifique rds.

Svp cocher ->https://basildoncoder.com/blog/postgresql-jdbc-client-certificates.html