如何获取AWS RDS实例的rds-ca-2019 pem证书文件?
AWS RDS rds-ca-2019证书获取及Java SSL连接配置方案
官方证书获取路径
- 路径1(最稳妥,和实例完全匹配):进入目标RDS实例的详情页,找到连通性配置板块,在显示
rds-ca-2019的证书字段旁,有直接的证书下载快捷按钮,点击后选择下载对应区域的rds-ca-2019完整证书包即可,这个入口下载的证书和实例的区域、签名算法完全对应,不会出现证书不匹配问题。 - 路径2(全局统一证书包):进入RDS服务控制台,在左侧导航栏找到「证书管理」(部分区域控制台显示为「证书更新」)选项,在已可用的证书列表中找到
rds-ca-2019条目,点击操作列的下载按钮,即可获取官方发布的全区域rds-ca-2019信任链bundle。
- 之前使用全局pem证书出现连接失败,基本是因为下载的pem文件仅包含根证书、缺失对应区域的中间CA证书,或是下载的证书签名算法(如RSA4096/GCM)和实例实际使用的证书算法不匹配导致的,从上述两个官方入口下载的完整证书包不会存在这类问题。
Java客户端SSL连接配置步骤
- 第一步:将下载得到的pem格式证书包导入Java信任库,使用JDK自带的
keytool工具执行导入命令即可,命令参考:
keytool -importcert -alias aws-rds-ca-2019 -file <本地保存的rds-ca-2019-bundle.pem路径> -keystore rds-truststore.jks -storepass <自定义信任库密码>
执行过程中弹出信任确认提示时输入yes回车即可完成导入。
- 第二步:配置PostgreSQL JDBC连接参数,在连接串中开启SSL校验并指定信任库位置,参考连接串格式:
jdbc:postgresql://<RDS实例访问端点>:5432/<数据库名>?ssl=true&sslmode=verify-full&sslrootcert=<rds-truststore.jks文件路径>&sslpassword=<之前设置的信任库密码>
注意:如果应用运行在JDK 8u91之前的老旧版本,需要先升级JDK版本,或手动更新JDK自带的cacerts根证书库,否则会因为JDK原生缺少AWS根证书信任锚导致SSL校验失败。
内容的提问来源于stack exchange,提问作者Hard Worker
相关产品推荐
相关产品推荐

