相关疑难解决方法(0)

使用PHP从SSL连接到远程MySQL服务器

我正在尝试使用mysql_connect从PHP连接到远程MySQL服务器:

$link = mysql_connect(
    "ip",
    "user",
    "pass",
    true,
    MYSQL_CLIENT_SSL
)
Run Code Online (Sandbox Code Playgroud)

并得到最糟糕的错误:

SSL connection error
Run Code Online (Sandbox Code Playgroud)

我在my.cnf中添加了以下参数:

[client]
ssl-ca      =/etc/mysql/ssl/ca-cert.pm
ssl-cert    =/etc/mysql/ssl/client-cert.pem
ssl-key     =/etc/mysql/ssl/client-key.pem
Run Code Online (Sandbox Code Playgroud)

所以我可以直接从终端成功连接到远程mysql

#mysql -h ip -u user -p
Run Code Online (Sandbox Code Playgroud)

所以连接到mysql服务器确实有效,据我所知,问题是在php/mysql合作中.可能我错过了一些参数.

不幸的是我不能使用mysqli lib,因为pdo_mysql有太多工作适配器.

我的PHP版本是5.3.6-13ubuntu3.6 MySQL版本是5.1.61

我还补充说

mssql.secure_connection = On
Run Code Online (Sandbox Code Playgroud)

到我的php.ini

帮助将不胜感激!

php mysql ssl

18
推荐指数
1
解决办法
5万
查看次数

PHP使用SSL连接到MS SQL

我的意思是非常简单.我想通过安全连接从PHP脚本连接到外部MS SQL数据库.然而,这已经证明是有问题的,到目前为止,研究投入了三个小时,我感到很茫然.

客户端的平台是Ubuntu,这意味着我不能使用SQLSRV.安全连接已经过不同客户端的测试,工作正常.我目前正在使用PDO和DBlib连接到数据库,这也可以正常工作.

我无法找到任何强制安全连接的方法.我尝试了多个其他驱动程序,但无济于事.

我有什么选择?

编辑:我留下了以下FreeTDS日志......

config.c:543:   Got a match.
config.c:565:   host = 'XXXXXXXXXX'
config.c:595:   Found host entry XXXXXXXXXX.
config.c:599:   IP addr is XXXXXXXXXX.
config.c:565:   port = '1433'
config.c:565:   encryption = 'require'
config.c:565:   check certificate hostname = 'no'
config.c:629:   UNRECOGNIZED option 'check certificate hostname' ... ignoring.
config.c:565:   ca file = 'XXXXXXXXXX.pem'
config.c:629:   UNRECOGNIZED option 'ca file' ... ignoring.
Run Code Online (Sandbox Code Playgroud)

php sql ubuntu ssl

5
推荐指数
1
解决办法
2261
查看次数

PHP到MySQL的SSL连接

我已经在一个网络上的一台服务器上成功设置了一个启用SSL的MySQL安装,并且可以使用SSL在不同网络上的另一台服务器上使用Linux命令行mysql客户端连接到它,但每次我尝试连接时(使用PHP 5.3) .3)我一直得到:

警告:mysqli_real_connect():( HY000/2026):第18行/var/www/html/test.php中的SSL连接错误

我的PHP如下,我做错了什么?证书是777(仅在测试时),相同的代码适用于不同用户的未加密连接(SSL设置被注释掉,即mysqli一般可以肯定地连接到数据库)

<?php

error_reporting(E_ALL);
ini_set("display_errors", "1");

$obj = mysqli_init();

mysqli_options($obj, MYSQLI_OPT_CONNECT_TIMEOUT, 5);

mysqli_ssl_set($obj,
               '/mysql-ssl-certs/server-key.pem',
               '/mysql-ssl-certs/server-cert.pem',
               '/mysql-ssl-certs/ca-cert.pem',
               NULL,
               NULL);

$link = mysqli_real_connect($obj, 'localhost', 'ssluser', 'some_password', 'test');

if (!$link)
{
    die('<br /><br />Connect Error (' . mysqli_connect_errno() . ') '.mysqli_connect_error());
}

echo 'Success... ' . mysqli_get_host_info($obj) . "\n";

$obj->close();

?>
Run Code Online (Sandbox Code Playgroud)

php mysql ssl mysqli

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

php ×3

ssl ×3

mysql ×2

mysqli ×1

sql ×1

ubuntu ×1