【问题标题】:MySQL Connector/NET SSL shuts down the serverMySQL Connector/NET SSL 关闭服务器
【发布时间】:2010-03-28 20:55:18
【问题描述】:

当我尝试使用带有 PFX 证书的 SSL 通过 MySQL Connector/NET 连接到我的服务器时,我在建立连接时遇到了问题。我得到一个连接超时。而且服务器可能会掉下来(我不确定,因为我不管理服务器)。

在 Windows XP 上可以正常工作,但在 Windows 7 上不行。

问题出在哪里?在 Windows 7 或服务器(MySQL 5.0)上? 有时我会收到“调用接口 SSPI 失败”错误,但不是每次都出现。有时只是连接超时错误。

【问题讨论】:

  • 您使用的是哪个 MySQL 连接器?您是从 C# 应用程序调用它吗?
  • 我尝试了 Connector/Net 6.2.2 和 6.3.1 alpha。我直接从我的 C# 应用程序中调用它。
  • 如果您不管理服务器,并且服务器由于“简单”TCP 连接而死机,那么该服务器有问题,而不是您。另外,请不要交叉发布问题,但您可以投票支持迁移(如果我没记错的话)。
  • 我经常使用Connector,了解到使用自制证书会出问题。服务器上是否安装了 SSL 证书?
  • 修改您的连接字符串是否有帮助? stackoverflow.com/questions/7649163/…

标签: c# .net mysql ssl


【解决方案1】:

XP 和 Windows 7 对证书使用不同的权限结构。如果您使用证书存储中的 PFX,Win7 会在尝试建立连接时要求提升。如果您不能授予它(例如,如果您的应用程序是无头的),则连接将超时。

打开证书管理器 (try this) 并查找您用于向 MySQL 进行身份验证的证书。您可能需要一个可用的公钥,而您的公钥可能有错误的权限。 Look here 了解如何更改权限的详细信息。

也有可能您的证书存储在错误的存储中,但这也可以通过证书存储 MMC 管理单元来解决。

如果您使用文件中的 PFX 并将其导入商店是一种选择,请尝试这样做。否则,您很可能需要在导入后连接之前设置证书的权限。

如果可用,服务器日志还可以为您提供连接失败原因的信息。以下是一些选项:

  • 如果服务器根本看不到证书,则可能是客户端在访问证书时存在权限问题。
  • 如果服务器看到证书但无法对其进行身份验证,这通常是公钥问题。 PFX 格式是持有人元格式,并非所有 PFX 文件都包含正确的组件。这也可以让您了解@Dremation 所说的内容,您的证书可能没有安装在服务器上。
  • 您的时钟也有可能不同步。如果您可以检查服务器时钟,请确保它正确且经常与某个标准时钟同步。然后确保您的客户也是如此。经验法则的最大偏差为 5 分钟,因此客户端和服务器上相反方向的 2.5 分钟会导致身份验证失败。
  • 您的客户端上应该有一个选项来调整重试尝试的次数。如果这是一个证书错误,并且您可以让它在第一次尝试时失败,那么至少您会立即收到一个证书错误,而不是将问题包含在连接超时中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2016-08-06
    • 1970-01-01
    相关资源
    最近更新 更多