【发布时间】:2019-07-15 22:33:42
【问题描述】:
如果我正确理解这个远程 MySQL 服务器有服务器证书来验证客户端并加密连接。 并且客户端可以有客户端证书来向服务器进行身份验证,但是如果我不需要向服务器验证客户端,因为我只需要加密,我可以在创建 PDO 连接时省略客户端证书。
例如,它的语法是什么
$con = new PDO('mysql:host=someHost;dbname=someDB;port=3306',$user,$pass);
在哪里指定我想要 SSL 但没有客户端证书
【问题讨论】:
-
那么 SSL 端点 MySQL 服务器没有证书?
-
你需要一个客户端证书,但是它们是免费的
-
$options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::MYSQL_ATTR_SSL_CA => '/path/to/cacert.pem',...$con = new PDO(' .. $options) -
@Jay,端点 MySQL 服务器有证书,但我有 PDO 的客户端没有证书。我没有在命令中指定 '/path/to/cacert.pem' 的那个文件。有必要吗,我在某处读到“不需要客户端证书,除非您为帐户设置 REQUIRE X509 选项”
-
那是因为您提供的用户没有访问权限。是
Access denied for user something@localhost吗?