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

时间:2008-12-01 19:11:41

标签: mysql ruby-on-rails ssl phpmyadmin ssl-certificate

我可能正在咆哮错误的树...但是,我所拥有的是一个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

问题是我想在与Rails应用程序相同的服务器上托管phpMyAdmin。我认为phpMyAdmin的连接选项更加有限,因为我似乎无法找到使用客户端证书进行连接的方法。但我发现奇怪的是,谷歌搜索的答案在这个问题上没有多少出现(这让我想知道我是否采取了错误的方法)。

显然,我可以轻松设置phpMyAdmin本身在SSL证书后面(它将加密客户端浏览器和我的phpMyAdmin服务器之间的请求),但我想要phpMyAdmin< - >数据库连接也要加密。

这可能吗?这是一个糟糕的设计选择吗?有更好的方法吗?

谢谢,

3 个答案:

答案 0 :(得分:5)

在您的config.inc.php中添加此行之后

适用的服务器内容:

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

假设您的php及其mysql客户端配置了SSL,这应该可行。

答案 1 :(得分:1)

我同意,答案还不够。每个人都告诉您放置SSL证书和指针的位置在conf.d virtualhost块中。但这是针对入站流量的。仅当从MySQL服务器的IP地址访问您的phpmyadmin时,本示例不是这种情况。在这里,我们使用phpmyadmin出去并从本地计算机向REMOTE服务器发出REMOTE请求。

为此,phpmyadmin必须具有配置设置以允许指定cert文件的位置。否则,我看不到它将如何工作。尽管虚拟主机块也可能适用于传出流量。我想我们可以尝试...我的想法是virtualhost仅适用于入站流量。

答案 2 :(得分:0)

我相信 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;