如何更新 Springboot 应用程序以使用 SSL/TLS 证书连接到 RDS?

时间:2021-05-08 12:42:12

标签: java mysql ssl amazon-rds

我使用 Amazon RDS MySQL 作为主数据库。根据此 blog,我需要更新应用程序以使用新的 CA。我正在按照 AWS 证明的 this instruction 更新我的应用程序。

以下具体说明不是很清楚:

java -Djavax.net.ssl.trustStore=/path_to_truststore/MyTruststore.jks -Djavax.net.ssl.trustStorePassword=my_truststore_password com.companyName.MyApplication        

即使更新后,应用程序也无法启动并显示以下错误消息:

2021-05-08 22:30:15org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.exception.FlywaySqlException:
2021-05-08 22:30:15Unable to obtain connection from database: Communications link failure
2021-05-08 22:30:15The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
2021-05-08 22:30:15--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2021-05-08 22:30:15SQL State : 08S01
2021-05-08 22:30:15Error Code : 0
2021-05-08 22:30:152021-05-08 12:30:15.312 INFO 6 --- [ main] ConditionEvaluationReportLoggingListener :

我的应用程序在 Fargate 平台版本 1.3.0 中运行。

应用 Dockerfile(简化版):

FROM openjdk:11

ARG JAR_PATH


RUN curl -k https://s3.amazonaws.com/rds-downloads/rds-ca-2019-root.pem -o rds-ca-2019-root.pem
RUN openssl x509 -outform der -in rds-ca-2019-root.pem -out rds-ca-2019-root.der
RUN echo yes | keytool -import -alias rds-root -keystore clientkeystore.jks -storepass changeme -file rds-ca-2019-root.der

RUN mkdir app
WORKDIR app

RUN mkdir config

COPY $JAR_PATH app.jar

CMD java -Djavax.net.ssl.trustStore=/clientkeystore.jks -Djavax.net.ssl.trustStorePassword=changeme -jar app.jar

EXPOSE 8080

我在 clientStore.jks 命令中使用 trustStore 作为 java 值。我不完全确定它是否正确。

0 个答案:

没有答案