mysql - 带有 SSL CA 的 phpMyAdmin 无法连接到 IPv6 MariaDB 服务器
问题描述
我在一台机器上有 MariaDB 服务器,在另一台机器上有 phpMyAdmin(因为第一台机器没有安装 http 服务器)。MariaDB 和 PMA 配置为在它们之间使用 SSL 连接(使用自签名证书)。在我迁移到 IPv6 地址之前,一切都很好。
我的 config.inc.php 文件中有两行用于 SSL:
$cfg['Servers'][$i]['ssl'] = true;
$cfg['Servers'][$i]['ssl_ca'] = '/..../ca-cert.pem';
在我将配置更改为使用 IPv6 地址并尝试登录 PMA 后,它抛出了错误链:“ mysqli::real_connect(): Cannot connect to MySQL by using SSL ”, “ mysqli::real_connect(): [ 2002](尝试通过(null)连接) “等等。
部分解决方案是将第二行注释如下:
$cfg['Servers'][$i]['ssl'] = true;
//$cfg['Servers'][$i]['ssl_ca'] = '/..../ca-cert.pem';
但在这种情况下,PMA 主屏幕上的“数据库连接”部分显示红色“SSL 未使用证书颁发机构”标签。
因此,在迁移到 IPv6 后,我的 CA 文件由于某种原因不被接受,尽管使用 IPv4 地址它运行良好。可以做些什么来解决这个问题?
来自 PMA 的附加信息:
Server: [xxxx:xxx:xxxx:xxx::1] via TCP/IP
Server type: MariaDB
Server connection: SSL is used without certification authority
Server version: 10.3.31-MariaDB-0ubuntu0.20.04.1 - Ubuntu 20.04
Protocol version: 10
nginx/1.18.0
Database client version: libmysql - mysqlnd 5.0.12-dev - 20150407
PHP version: 7.2.34-24+ubuntu20.04.1+deb.sury.org+1
phpMyAdmin version: 5.1.1
解决方案
推荐阅读
- c# - ASP.NET C# - 选择下拉列表未选择正确的值
- twilio - 需要帮助在 Twilio 函数中创建时间门
- hyperledger-fabric - 安装 Fabric 链码时出错:_lifecycle.syscc:没有这样的文件或目录
- python - 有没有办法简化 random.randint 脚本?
- android - Flutter Animation-start 在第二次运行时不起作用
- android - 使用 URL_Launcher 包的 Flutter 错误
- excel - 关于Hlookup,但不能显示第一行
- kotlin - 通过作为参数给出的变量属性对 kotlin 中的列表进行排序
- r - 使用 geom_sf 将纬度/经度点转换为地图
- javascript - 如何使用 webpack、内容安全策略和 fetch/ajax 调用来拥有自己的服务器和外部站点?