2012-01-25 95 views
4

我熟悉的HTTPS实现的公共/私有密钥协商,这就是为什么我由是apparently available以下驱动程序选项混淆(尽管没有正式记录),用于PDO的MySQL驱动程序:SSL PDO(MySQL)支持SSL如何工作?

PDO::MYSQL_ATTR_SSL_KEY 
PDO::MYSQL_ATTR_SSL_CERT 
PDO::MYSQL_ATTR_SSL_CA 

的链接建议他们指向本地存储的文件 - 但为什么除了CA证书之外的任何副本都会存储在客户端上?有没有人使用这种方法成功地进行了加密连接?

回答

2

这涉及到客户端必须具备的客户端证书才能连接到服务器,即客户端必须验证其身份(是的,SSL可以以其他方式工作)。通过读取普通区间Using SSL for Secure Connections开始,然后看到GRANT syntaxREQUIRE条款:

  • REQUIRE X509意味着客户端必须有一个有效的证书,但确切的证书,颁发者和主题并不重要。唯一的要求是应该可以使用其中一个CA证书验证其签名。

  • REQUIRE ISSUER 'issuer'对连接企图的限制是客户必须出示由CA“颁发者”颁发的有效X509证书。如果客户端提供的证书有效但具有不同的颁发者,则服务器拒绝连接。使用X509证书总是意味着加密,所以在这种情况下SSL选项是不必要的。

  • ...