【问题标题】:Connect to SQL Server using a pem file, username and password使用 pem 文件、用户名和密码连接到 SQL Server
【发布时间】:2021-08-05 14:55:00
【问题描述】:

我有一个 SQL Server(它是一个 Google 云 SQL Server)。与它的连接需要使用 ssl 加密并使用用户名和密码进行身份验证。

我可以获取 ssl 证书的 .pem 文件:

我还有服务器的用户名、密码和 ip。在SqlClient connection string syntax 中,我能够找到定义用户名(uid)、密码(pwd)和ip(数据源)的标志。但我找不到如何放置 .pem 文件。

.pem 文件不属于连接字符串吗?如果是这样,我该如何使用它?

谢谢,
尼姆罗德

编辑:我尝试打开与trustServerCertificate=true 的连接,但仍然得到error: 40 - Could not open a connection to SQL Server

解决方案:
SSL 不是问题。添加 TrustServerCertificate 和 Encrypt 标志应该允许 SSL。使用这些标志,客户端只接受来自服务器的任何证书,并继续进行 SSL 握手。
我的问题是我没有将客户端网络添加到云 SQL 的受信任网络列表中。即使云 SQL 设置为我们的公共 IP,这显然是一项要求。我将 0.0.0.0/0 网络添加为可信网络,并且连接正常。

【问题讨论】:

  • 您使用的是public 还是private IP 地址?无论哪种方式,都需要遵循一些额外的配置步骤(参见前面的链接)。您也可以尝试使用Cloud SQL Auth Proxy,这是连接到 Cloud SQL 的推荐方式。
  • 无论如何,您看到的错误error: 40 - Could not open a connection to SQL Server 似乎不是 SSL 问题。问题是您没有到达服务器。

标签: sql-server ssl iis connection-string google-cloud-sql


【解决方案1】:

.pem 文件不属于连接字符串吗?

没有。

客户端要求使用Encryptconnection string option 进行协议加密。如果客户端不信任服务器的证书,您要么需要在客户端安装证书,要么在连接字符串中选择TrustServerCertificate

【讨论】:

  • 我不介意信任服务器证书。但我仍然无法打开连接。这意味着它与 ssl 问题无关?
  • 是的。接下来进行正常连接故障排除。
  • 我实际上在你发布之前尝试过这个,但是有一个不同的问题,所以我以为我误解了文档。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 2021-10-31
相关资源
最近更新 更多