Nginx 上带有 SSL(HTTPS 和 mysql 客户端)的 phpMyAdmin

Nginx 上带有 SSL(HTTPS 和 mysql 客户端)的 phpMyAdmin

我正在通过 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 连接:

在此处输入图片描述

问题:

  1. 您能否帮助我了解在没有网络服务器证书的情况下它是如何工作的,以及我是否真的在使用加密连接数据库服务器?我暂时启用了这些指令,它是否可能被缓存在某个地方?

  2. 我还注意到一些奇怪的行为:

当我登录 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 中定义的任何证书。

HTTPSSSL就 phpMyAdmin 的配置而言!= 。

您所提到的设置专门用于SSLphpMyAdmin 和 MySQL 之间的连接 - 如果是在本地主机上,则无论如何都不太相关。

URL 中的token是 phpMyAdmin 存储会话的正常方式。删除它,您的会话就会丢失。

相关内容