我正在通过 SSL(HTTPS)设置 phpMyAdmin 以及与数据库服务器的 SSL 连接。
我已经为 Nginx 配置了 SSL 证书。我已注释掉 phpMyAdmin 上的版本检查,因为它是通过 HTTP 进行连接的,并且会破坏安全连接。
所有数据库服务器均启用了 SSL:
Variable_name Value
have_openssl YES
have_ssl YES
ssl_ca /etc/mysql/ca-cert.pem
ssl_capath
ssl_cert /etc/mysql/server-cert.pem
ssl_cipher
ssl_key /etc/mysql/server-key.pem
我已将指令添加$cfg['Servers'][$i]['ssl'] = TRUE;
到 phpMyAdmin 配置文件中,但我尚未指定证书/密钥和值的路径:
$cfg['Servers'][$i]['ca'] = '/etc/ssl/certs/ca-cert.pem';
$cfg['Servers'][$i]['cert'] = '/etc/mysql/client-cert.pem';
$cfg['Servers'][$i]['key'] = '/etc/mysql/client-key.pem';
- 但是看起来我在 Web 服务器和数据库服务器之间使用了 SSL 连接:
问题:
您能否帮助我了解在没有网络服务器证书的情况下它是如何工作的,以及我是否真的在使用加密连接数据库服务器?我暂时启用了这些指令,它是否可能被缓存在某个地方?
我还注意到一些奇怪的行为:
当我登录 PMA 时,我看到以下 URL:
https://example.com/index.php?token=e683bf8b717275f509cc76716c8db605#PMAURL:server=1&target=main.php&token=e683bf8b717275f509cc76716c8db605
- 当我删除长字符串并按 Enter 键仅访问 FQDN(example.com)时,服务器将我注销,但是当我添加一些随机字符串(example.com/sdfsfefse)时 - 输入,我无需指定密码即可登录。这与 Cookie 有关吗?
谢谢
答案1
您没有为 phpMyAdmin 设置 SSL 证书HTTPS
- 它是一个 Web 应用程序 - 而不是 Web 服务器。Nginx 存储证书并终止/解包 SSL。
您使用的会话HTTPS
是您的 PC 与 Nginx 之间的会话 - 与 phpMyAdmin 无关。您的 phpMyAdmin vhost 使用您在 Nginx 中定义的任何证书。
HTTPS
SSL
就 phpMyAdmin 的配置而言!= 。
您所提到的设置专门用于SSL
phpMyAdmin 和 MySQL 之间的连接 - 如果是在本地主机上,则无论如何都不太相关。
URL 中的token
是 phpMyAdmin 存储会话的正常方式。删除它,您的会话就会丢失。