10bet网址
MySQL连接器/NET开发人员指南
相关文件10bet官方网站 本手册下载

6.7.2在Connector/NET中使用PFX证书

. net不提供对PEM格式的本机支持。相反,Windows包含一个证书存储,它以PFX格式提供平台相关的证书。对于本例,使用来自MySQL服务器存储库的测试客户机证书(./mysql-test/std_data.)。首先将这些转换为PFX格式。此格式也称为PKCS#12。

要完成本教程中关于PFX证书的步骤,您必须安装Open SSL。这可以从微软Windows免费下载闪亮的光线效果

创建与.NET客户端一起使用的证书文件

  1. 从目录server-repository-root/ mysql-test / std_data,发出以下命令。

    openssl pkcs12-export -in client-cert.pem -inkey client-key.pem -certfile cacert.pem -out client.pfx
  2. 当要求输入导出密码时,请输入密码通过。该文件client.pfx.将生成。此文件用于本教程的其余部分。

通过文件证书连接服务器

  1. 使用client.pfx.文件在上一步中创建的文件来验证客户端。以下示例演示了如何使用该方法SSLMode.,CertificateFile, 和CertificatePassword连接字符串选项。

    使用(mysqlconnection connection = new mysqlconnection(“database = test; user = sslclient;”+“证书文件= h:\\ git \\ mysql-trunk \\ mysql-test \\ std_data \\ client.pfx;”+“证书扫描件= pass;“+”sslmode =必需“)){connection.open();}

    证书文件的路径需要更改以反映您的单独安装。当使用PFX格式证书时,SSLMode.连接选项验证所有SSL模式值的证书,除了没有任何

使用基于商店的证书连接到服务器

  1. 第一步是导入PFX文件,client.pfx.,进入个人商店。双击Windows资源管理器中的文件。这启动了证书导入向导。

  2. 按照向导指示的步骤,当提示输入PFX文件的密码时,输入通过

  3. 点击结束关闭向导并将证书导入个人商店。

检查个人商店中的证书

  1. 通过输入开始Microsoft管理控制台mmc.exe.在命令提示符下。

  2. 选择添加/删除管理单元来自文件菜单。点击添加。选择证书从可用管理件列表中。

  3. 在对话框中,单击添加然后选择我的用户帐户选项。此选项用于个人证书。

  4. 点击结束

  5. 点击好的关闭“添加/删除管理单元”对话框。

  6. 您现在有证书-当前用户显示在Microsoft Management Console的左面板中。展开“证书-当前用户”树项目并选择个人,证书。右图显示向前导入的MySQL发出的证书。双击证书以显示其详细信息。

  7. 将证书导入Personal Store后,可以使用更简洁的连接字符串连接到数据库,如下面的代码所示:

    使用MySqlConnection连接新的MySqlConnection("database=test;user=sslclient;")+ "证书存储位置=CurrentUser;"+“SslMode=Required”)){连接. open ();}

证书指纹参数

如果您的存储中有大量证书,而且许多证书具有相同的颁发者,这可能会造成混淆,并导致使用错误的证书。为了缓解这种情况,有一个可选的Certificate Thumbprint参数,可以作为连接字符串的一部分另外指定该参数。如前所述,您可以在Microsoft Management Console中双击证书以显示证书的详细信息。当弹出“证书”对话框时,单击细节选项卡和向下滚动查看拇指指纹。指纹通常是一个数字,例如‎47 94 36 00 9a 40 f3 01 7a 14 5c f8 47 9e 76 94 d7 aa de f0。这个指纹可以在连接字符串中使用,如下代码所示:

使用MySqlConnection连接新的MySqlConnection("database=test;user=sslclient;")+ "证书存储位置=CurrentUser;"+“证书指纹= 479436009 a40f3017a145cf8479e7694d7aadef0;”+“SSL模式=必需的”)){连接。open ();}

Thumbprint参数中的空格是可选的,值不区分大小写。