【发布时间】:2019-01-20 04:38:27
【问题描述】:
我已经用 Nginx 配置了一个网络服务器。现在,我有一个以 PhpMyAdmin 作为管理 gui 运行的 MariaDB 实例。一切正常。自去年开始以来,我仍在学习 Nginx 和所有与网络服务器相关的东西。
我运行的每个应用程序都使用 SSL 证书进行保护,因此每次访问应用程序所在的 URL 时,PHPMyAdmin 通过 https 的连接也是如此。
服务器 { 听 80; 听 [::]:80; server_name sub.example.com; 地点 / { 重写 ^ https://$host$request_uri?永恒的; } } 服务器 { 听 443 ssl http2; 听 [::]:443 ssl; server_name sub.example.com; gzip 关闭; server_tokens 关闭; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384; ssl_ecdh_curve secp384r1; ssl_session_tickets 关闭; ssl_dhparam /etc/ssl/certs/dhparam-4096.pem; #OCSP 装订 ssl_stapling 开启; ssl_stapling_verify 开启; 解析器 8.8.8.8; # SSL 会话 ssl_session_cache 共享:SSL:10m; ssl_session_timeout 10m; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header Strict-Transport-Security "max-age=0; includeSubDomains"; 地点 / { proxy_pass ip:端口; } }我认为仍有改进的可能,但这是我的问题: 就像我说的,PhpMyAdmin 通过 Nginx 在 https 上运行。但是 PhpMyAdmin 本身显示的消息是不匹配的:
This message is readable on the login
登录后,我看到一个:warning under database
我查看了上面警告from PhpMyAdmin itself的文档
我使连接可用于 config.user.inc.php 文件,并尝试在其中包含 ssl 行。在过去的几天里,我做了很多研究来解决这个问题。使用我描述的设置,PhpMyAdmin 是受保护的,还是仅受服务器端保护?我从某处的帖子中读到,仅通过 nginx 引导加密就足够了。
如何确保 PhpMyAdmin 安全运行?除此之外,对于最近的 PhpMyAdmin 版本,上述文档是否已弃用,或者我可以使用该文档吗?那么证书文件呢,我在 Nginx conf 文件中写下了两个证书文件的路径。我需要在 PMA 的 ssl 配置行填写哪些文件?我的意思是,因为需要更多文件,所以这些文件不同吗?示例is this post
$cfg['Servers'][$i]['ssl'] = true;
$cfg['Servers'][$i]['ssl_cert'] = '/etc/mysql/client-cert.pem';
$cfg['Servers'][$i]['ssl_ca'] = '/etc/mysql/ca-cert.pem';
$cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/client-key.pem';
编辑:我只有these cert files
如果我可以通过将其添加到 pma 配置来解决,哪些文件与哪一行匹配?
【问题讨论】:
标签: php ssl nginx phpmyadmin mariadb