通过SSL将phpMyAdmin连接到MySQL服务器

disho6za  于 2022-11-14  发布在  PHP
关注(0)|答案(3)|浏览(201)

我可能找错人了......但是,我有一个MySQL服务器,它只接受来自具有有效SSL证书的客户端的连接(请参见this link)。这在Rails中非常有效。我在一个服务器上有我的数据库,以及一个使用客户端证书连接的Rails应用程序。也许不是最快的,但它很有效。

database.yml中的配置如下所示:

sslkey: /path/to/client-key.pem
sslcert: /path/to/client-cert.pem
sslca: /path/to/ca-cert.pem

问题是我想把phpMyAdmin托管在Rails应用程序所在的服务器上。我认为phpMyAdmin只是在连接选项上受到了更多限制,因为我似乎找不到一种方法让它使用客户端证书进行连接。但我发现奇怪的是,在谷歌上搜索这个问题的答案并没有太多(这让我怀疑我是否采取了错误的方法)。
显然,我可以轻松地将phpMyAdmin本身设置为托管在SSL证书之后(SSL证书将加密客户端浏览器和phpMyAdmin服务器之间的请求),但我希望phpMyAdmin <->db连接也被加密。
这是可能的吗?这是一个糟糕的设计选择吗?有没有更好的方法来做到这一点?

avkwfej4

avkwfej41#

config.inc.php中,在适用的服务器内容之后添加以下行:

$cfg['Servers'][$i]['ssl']=true;

假设你的php和它的mysql客户端都配置了SSL,这应该可以工作。

nhhxz33t

nhhxz33t2#

我相信在PHPmyadmin文档中已经很好地解释了完全全面的答案:https://docs.phpmyadmin.net/en/latest/config.html#example-google-ssl
你应该按照它来配置你在config.inc.php中的服务器连接记录:

// IP address of your instance
$cfg['Servers'][$i]['host'] = '8.8.8.8';
// Use SSL for connection
$cfg['Servers'][$i]['ssl'] = true;
// Client secret key
$cfg['Servers'][$i]['ssl_key'] = '../client-key.pem';
// Client certificate
$cfg['Servers'][$i]['ssl_cert'] = '../client-cert.pem';
// Server certification authority
$cfg['Servers'][$i]['ssl_ca'] = '../server-ca.pem';
// Disable SSL verification (see above note)
$cfg['Servers'][$i]['ssl_verify'] = false;
ecbunoof

ecbunoof3#

我同意,答案是不够的。每个人都告诉你把你的SSL证书和指针放在一个conf.d虚拟主机块中。但那是针对入站流量的。只有当你的phpmyadmin被从mysql服务器的IP地址访问时才是这样,但在这个例子中不是这样。在这里,我们使用phpmyadmin从本地计算机发出REMOTE请求到REMOTE服务器。
为了做到这一点,phpmyadmin必须有一个配置设置,以允许规范cert文件的位置。否则,我不知道这将如何工作。虽然也许虚拟主机块将工作的传出流量也。我想我们可以尝试...我的想法是,虚拟主机只工作的入站流量。

相关问题