引入直接使用 PEM 格式证书是为了简化包含类似 MySQL 产品的多平台环境中的证书管理。在以前版本的 Connector/NET 中,您唯一的选择是使用平台相关的 PFX 格式证书。
对于此示例,使用来自 MySQL 服务器存储库 (
) 的测试客户端证书。server-repository-root
/mysql-test/std_datatest
在您的应用程序中,使用数据库和
sslclient
用户帐户(之前创建)添加连接字符串
。例如:
将
SslMode
连接选项设置为所需的安全级别。PEM 证书仅针对SSL 模式值VerifyCA
进行 验证。VerifyFull
所有其他模式值都会忽略证书,即使提供了证书也是如此。using (MySqlConnection connection = new MySqlConnection( "database=test;user=sslclient;" + "SslMode=VerifyFull"
添加适当的 SSL 证书。由于本教程将
SslMode
选项设置为 ,因此您还必须为、和连接选项VerifyFull
提供值。每个选项必须指向具有文件扩展名的文件。SslCa
SslCert
SslKey
.pem
"SslCa=ca.pem;" + "SslCert=client-cert.pem;" + "SslKey=client-key.pem;"))
或者,如果将 SSL 模式设置为
VerifyCA
,则只SslCa
需要连接选项。打开连接。以下示例使用经典的 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 证书时发现的错误将导致抛出异常。有关其他信息,请参阅 加密连接的命令选项。