phpMyAdmin在Nginx上使用SSL(HTTPS和MySQL客户端)

我正在通过SSL(HTTPS)设置phpMyAdmin,还要连接数据库服务器。

我已经使用SSL证书configuration了Nginx。 我已经注意到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的configuration文件,但我没有指定pathcerts /键,值:

 $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. 你能帮我理解这是如何工作没有在networking服务器上的证书,如果我实际上使用encryption连接到数据库服务器? 是否有可能将它caching在某处,因为我已经启用了这些指令了一会儿?

  2. 我也注意到奇怪的行为:

当我login到PMA时,我看到以下URL:

 https://example.com/index.php?token=e683bf8b717275f509cc76716c8db605#PMAURL:server=1&target=main.php&token=e683bf8b717275f509cc76716c8db605 
  • 当我删除长string,并通过按Enter访问FQDN(example.com)时,服务器注销我,但是当我添加一些随机string(example.com/sdfsfefse) – input,我login没有指定密码。 这与Cookie有关吗?

谢谢

您不要为PHPMyAdmin设置HTTPS的SSL证书 – 它是一个Web应用程序 – 而不是Web服务器。 Nginx存储证书并终止/解开SSL。

您正在使用的HTTPS会话是在您的PC和Nginx之间 – 这与PHPMyAdmin无关。 您的PHPMyAdmin虚拟主机正在使用您在Nginx中定义的任何证书。

HTTPS != SSL的configuration与PHPMyAdmin的configuration有关。

您提到的设置专门用于PHPMyAdmin和MySQL之间的SSL连接 – 如果在本地主机上,则不会太相关。

URL中的token是PHPMyAdmin存储会话的正常token 。 删除它,并失去你的会议。