【问题标题】:Connecting to MySQL via SSL using PHP使用 PHP 通过 SSL 连接到 MySQL
【发布时间】:2011-06-28 19:23:16
【问题描述】:

我正在编写我的第一个脚本,它将通过 SSL 连接到 MySQL 数据库。我一直在阅读有关该主题的大量内容,并且遇到了许多有关如何设置它的选项;有些适用于我的情况,有些则不适用。这是我的情况:

MySQL 服务器与脚本在同一台机器上。我的 SSL 证书已安装。使用以下代码通过使用 SSL 的页面简单地连接到数据库是否安全?

Connecting via https://www.mysitehere.com/myscript.php

$con = mysql_connect("localhost", "username", "password", MYSQL_CLIENT_SSL);
if (!$con) {die('Could not connect: ' . mysql_error());}
mysql_select_db("my_database", $con);

【问题讨论】:

  • 我可以看到需要远程连接,但是为什么您需要 SSL 来实现 本地 连接呢?您最好不要通过套接字连接吗?不确定我是否理解。
  • 哦,所以说我不需要 MYSQL_CLIENT_SSL
  • 如果您的服务器与您的客户端在同一台机器上,则(通常)没有太多理由使用 SSL——这不像您的流量通过不安全/不受信任的链接,它会增加计算开销。
  • 我看不出原因。如果有人在中间或其他人对您的机器进行攻击,无论如何它都会受到损害而无法挽救。

标签: php mysql ssl


【解决方案1】:

MySQL 服务器与脚本在同一台机器上。我的 SSL 证书已安装。简单地连接到网络是否安全 通过以下代码使用 SSL 的页面访问数据库?

如果您控制服务器(VPS)并且PHP与MySQL在同一台机器上(只需要允许来自同一台机器的连接),那么对MySQL使用SSL是没有意义的,只会导致开销。你应该只使用防火墙来保护 MySQL like you should also do with memcached

否则你可以阅读this section from MySQL to configure SSL。我认为涉及的不仅仅是$con = mysql_connect("localhost", "username", "password", MYSQL_CLIENT_SSL); .例如你需要配置你的SSL Certificate:

mysqld --ssl-ca=ca-cert.pem \
       --ssl-cert=server-cert.pem \
       --ssl-key=server-key.pem

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-17
    • 2017-12-02
    • 1970-01-01
    • 2020-04-28
    • 2023-03-09
    • 2011-01-25
    • 2017-11-14
    • 1970-01-01
    相关资源
    最近更新 更多