[英]Laravel MySQL SSL Peer certificate did not match eventhough verification is disabled
I'm trying to set up an SSL connection between two servers (Laravel and MySQL 8).我正在尝试在两台服务器(Laravel 和 MySQL 8)之间建立 SSL 连接。 The options in database.php for this connection are:
此连接的 database.php 中的选项是:
'db_connection' => [
'driver' => 'mysql',
'host' => '192.168.0.1',
'port' => '3306',
'database' => 'my_db',
'username' => 'my_user',
'password' => 'my_password',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
PDO::MYSQL_ATTR_SSL_CA => '/path/ca.pem',
PDO::MYSQL_ATTR_SSL_KEY => '/path/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/path/client-cert.pem',
]) : [],
],
Now even though I set MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
to false
but I still get this error:现在即使我将
MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
设置为false
但我仍然收到此错误:
PDO::__construct(): Peer certificate CN=`MySQL_Server_8.0.xx_Auto_Generated_Server_Certificate' did not match expected CN=`192.168.0.1'
I also tried to remove MYSQL_ATTR_SSL_CA
But then I get this error:我也尝试删除
MYSQL_ATTR_SSL_CA
但后来我收到此错误:
SQLSTATE[HY000] [3159] Connections using insecure transport are prohibited while --require_secure_transport=ON.
I even tried to set MYSQL_ATTR_SSL_CA
to '/dev/null'
but I get this error:我什至尝试将
MYSQL_ATTR_SSL_CA
设置为'/dev/null'
但我收到此错误:
failed loading cafile stream: `/dev/null'
It seems MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
is not working at all.似乎
MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
根本不起作用。 How can I resolve my issue and disable SSL certification verification in Laravel?如何解决我的问题并在 Laravel 中禁用 SSL 认证验证?
Thanks.谢谢。
I see 2 options to solve it:我看到 2 个选项来解决它:
A) Remove array_filter (by default removes all keys with value==false) from A) 从
'options' => extension_loaded('pdo_mysql') ? array_filter([
OR或者
B) change options to: B) 将选项更改为:
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => '/path/ca.pem',
PDO::MYSQL_ATTR_SSL_KEY => '/path/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/path/client-cert.pem',
]) + [PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,] : [],
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.