php - 使用 PHP 通过 SSL 连接到 MySQL

标签 php mysql ssl

我正在编写我的第一个脚本,它将通过 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);

最佳答案

The MySQL server is on the same machine as the script. My SSL Certificate is installed. Is it secure to simply connect to the database via a page that is using SSL with the following code?

如果您控制服务器 (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

关于php - 使用 PHP 通过 SSL 连接到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6511999/

相关文章:

php - 独特的 slug,如果适合 slug-1、slug-2...slug-n

php - PHP MYSQL、latin1_swedish_ci 和 utf8_general_ci 的非法混合排序规则

mysql - 如何在sql中编写查询以从表中选择相同的记录

python - django2.1 发送电子邮件失败 :ssl. SSLError : [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl. c:833)

ssl - uWSGI 客户端证书认证 CRL

php - Laravel 太慢了

php - 如何在 laravel 4.2 中按类型和日期顺序列出数据库中的数据?

php - mysql 查询的输出结果依赖于 MySQL 数组中选定的行

php - Ajax 和 SQL 填充下拉列表

java - Java 中的 SSL key 和客户端身份验证