You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过SSL连接Visual Basic应用至AWS RDS实例求助

解决MySql.Data 6.7.4.0连接RDS MySQL 8.0 SSL的SSPI错误

核心问题

你遇到的A call to SSPI failed异常,本质是旧版驱动与MySQL 8.0/RDS的TLS协议不兼容,加上连接字符串参数命名错误导致的。MySql.Data 6.7.4.0是适配MySQL 5.x的老版本,默认不支持MySQL 8.0要求的TLS 1.2+协议,且SSL参数命名与新版不同。

解决方案

1. 修正连接字符串参数

旧版驱动使用驼峰命名的SSL参数,替换你的连接字符串为:

myConnStr = "Server=database.server.123b234.ap-southeast-2.rds.amazonaws.com;" _
            & "uid=user;" _
            & "pwd=password;" _
            & "Port=3306;" _
            & "Allow Zero Datetime=true;" _
            & "CharSet=utf8;" _
            & "SslMode=Required;" _
            & "SslCa=C:\your-path\rds-combined-ca-bundle.pem" '替换为证书实际路径

conn.ConnectionString = myConnStr
conn.Open()

注意:

  • 用SslMode(驼峰格式)替代SSL Mode
  • 用SslCa替代ssl-ca/sslca,这是旧版驱动唯一支持的CA证书参数名

2. 强制启用TLS 1.2

MySQL 8.0和AWS RDS已禁用TLS 1.0/1.1,而MySql.Data 6.7.4.0默认不会启用TLS 1.2,需手动强制:

  • 若项目基于.NET Framework 4.5+,在代码初始化阶段添加:
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12
  • 若项目基于.NET Framework 4.0,需安装微软官方的TLS 1.2支持补丁,或升级项目到.NET Framework 4.5+(Visual Studio 2010支持此升级)

3. 证书信任优化(可选)

如果指定SslCa后仍报错,可将rds-combined-ca-bundle.pem导入Windows系统的受信任根证书颁发机构:

  1. 双击PEM文件,点击「安装证书」
  2. 选择「本地计算机」,下一步
  3. 选择「将所有证书放入下列存储」,点击「浏览」,选择「受信任的根证书颁发机构」
  4. 完成导入后,连接字符串可省略SslCa参数,驱动会自动信任RDS证书

验证

  1. 确认RDS实例的require_secure_transport参数已设为ON
  2. 按上述修改后重新运行代码,若仍有异常,检查:
    • .NET Framework版本是否支持TLS 1.2
    • 证书路径是否正确,或是否已成功导入系统证书存储

内容的提问来源于stack exchange,提问作者jabroni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 20:57:07