配置SSL强制的RDS Proxy连接报错:TLS/SSL无法获取本地颁发者证书
问题排查:RDS Proxy SSL连接报错"unable to get local issuer certificate"
核心问题
配置了强制SSL的RDS Proxy,使用以下命令连接时触发TLS错误:
mysql -h host -u user -p"password" --ssl_ca=global-bundle.pem
错误信息:
ERROR 2026 (HY000): TLS/SSL error: unable to get local issuer certificate
禁用SSL后可正常连接,以下是针对性排查步骤:
排查步骤
1. 验证CA证书文件有效性
- 确认
global-bundle.pem是AWS官方最新根证书包,未出现下载截断、文件损坏情况。 - 用openssl命令检查证书是否可正常解析:
若命令报错,说明文件损坏,需重新下载AWS官方根证书。openssl x509 -in global-bundle.pem -text -noout
2. 修正MySQL客户端SSL参数
- 部分MySQL版本仅指定
--ssl_ca不足以强制SSL协商,需添加--ssl-mode=REQUIRED参数(旧版本可改用--ssl),确保客户端强制使用SSL连接:mysql -h host -u user -p"password" --ssl_ca=global-bundle.pem --ssl-mode=REQUIRED
3. 检查RDS Proxy及后端RDS的SSL配置
- 确认RDS Proxy的Require SSL选项已开启,同时后端关联的RDS实例也需开启SSL强制要求(Proxy会继承或强化实例的SSL规则)。
- 如果Proxy使用了自定义SSL证书,则不能使用AWS通用的
global-bundle.pem,需替换为自定义证书对应的CA文件。
4. 测试SSL连接链完整性
- 用openssl工具直接测试与Proxy的SSL连接,查看证书链是否完整:
若输出中出现openssl s_client -connect host:3306 -CAfile global-bundle.pemverify return:1说明验证通过;若出现verify return:20或类似错误,说明缺少中间证书,需将中间证书追加到global-bundle.pem中。
5. IAM策略补充说明
当前提供的IAM策略仅包含SecretsManager和KMS权限,由于禁用SSL可正常连接,说明IAM权限不影响基础连接,但如果后续改用IAM认证连接Proxy,需补充rds-db:connect权限。
内容的提问来源于stack exchange,提问作者Mangesh Tak
相关产品推荐
相关产品推荐

