6.7.1 在连接器/NET 中使用 PEM 证书

引入直接使用 PEM 格式证书是为了简化包含类似 MySQL 产品的多平台环境中的证书管理。在以前版本的 Connector/NET 中,您唯一的选择是使用平台相关的 PFX 格式证书。

对于此示例,使用来自 MySQL 服务器存储库 ( server-repository-root/mysql-test/std_data) 的测试客户端证书。test在您的应用程序中,使用数据库和 sslclient用户帐户(之前创建)添加连接字符串 。例如:

  1. SslMode连接选项设置为所需的安全级别。PEM 证书仅针对SSL 模式值VerifyCA进行 验证。VerifyFull所有其他模式值都会忽略证书,即使提供了证书也是如此。

    using (MySqlConnection connection = new MySqlConnection(
    "database=test;user=sslclient;" +
    "SslMode=VerifyFull"
  2. 添加适当的 SSL 证书。由于本教程将SslMode选项设置为 ,因此您还必须为、和连接选项VerifyFull提供值。每个选项必须指向具有文件扩展名的文件。 SslCaSslCertSslKey.pem

    "SslCa=ca.pem;" +
    "SslCert=client-cert.pem;" +
    "SslKey=client-key.pem;"))

    或者,如果将 SSL 模式设置为 VerifyCA,则只SslCa 需要连接选项。

  3. 打开连接。以下示例使用经典的 MySQL 协议打开连接,但您可以使用 X 协议执行类似的测试。

    using (MySqlConnection connection = new MySqlConnection(
    "database=test;user=sslclient;" +
      "SslMode=VerifyFull" +
      "SslCa=ca.pem;" +
      "SslCert=client-cert.pem;" +
      "SslKey=client-key.pem;"))
    
    {
        connection.Open();
    }

处理 PEM 证书时发现的错误将导致抛出异常。有关其他信息,请参阅 加密连接的命令选项