Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP PDO(MySQL)中的SSL支持是如何工作的?_Php_Mysql_Ssl_Pdo_Public Key Encryption - Fatal编程技术网

PHP PDO(MySQL)中的SSL支持是如何工作的?

PHP PDO(MySQL)中的SSL支持是如何工作的?,php,mysql,ssl,pdo,public-key-encryption,Php,Mysql,Ssl,Pdo,Public Key Encryption,我熟悉HTTPS中实现的公钥/私钥协商,这就是为什么我对PDO的MySQL驱动程序的以下驱动程序选项感到困惑(尽管没有正式记录): PDO::MYSQL_ATTR_SSL_KEY PDO::MYSQL_ATTR_SSL_CERT PDO::MYSQL_ATTR_SSL_CA 该链接表明它们指向本地存储的文件——但为什么除了CA证书之外的任何东西的副本都会存储在客户端上?是否有人使用此方法成功建立了加密连接?这涉及到客户端必须拥有的客户端证书,以便能够连接到服务器,即客户端必须验证其身份(是的,

我熟悉HTTPS中实现的公钥/私钥协商,这就是为什么我对PDO的MySQL驱动程序的以下驱动程序选项感到困惑(尽管没有正式记录):

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

该链接表明它们指向本地存储的文件——但为什么除了CA证书之外的任何东西的副本都会存储在客户端上?是否有人使用此方法成功建立了加密连接?

这涉及到客户端必须拥有的客户端证书,以便能够连接到服务器,即客户端必须验证其身份(是的,SSL也可以通过其他方式工作)。首先阅读概述部分,然后参见以下章节中的
REQUIRE
条款:

  • REQUIRE X509
    表示客户端必须拥有有效的证书,但确切的证书、颁发者和主题并不重要。唯一的要求是,应该能够使用其中一个CA证书验证其签名

  • 要求颁发者“颁发者”
    对连接尝试设置限制,即客户端必须提供CA“颁发者”颁发的有效X509证书。如果客户端提供的证书有效但具有不同的颁发者,则服务器将拒绝连接。使用X509证书总是意味着加密,因此在这种情况下不需要SSL选项