程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP到MySQL SSL连接大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决php到MySQL SSL连接?

开发过程中遇到php到MySQL SSL连接的问题如何解决?下面主要结合日常开发的经验,给出你关于php到MySQL SSL连接的解决方法建议,希望对你解决php到MySQL SSL连接有所启发或帮助;

在这里,php(和@H_311_3@mysqLi_real_connect)是客户端而不是服务器。您正在使用@H_311_3@mysqLi_ssl_set客户端证书身份验证(以及服务器密钥和证书)对其进行配置

我不确定您是如何配置MysqL服务器的,但是在配置的(MysqL)服务器部分中应该有类似的内容:

ssl-key=/MysqL-ssl-certs/server-key.pem
ssl-cert=/MysqL-ssl-certs/server-cert.pem
ssl-ca=/MysqL-ssl-certs/ca-cert.pem

无论如何,它们都不属于客户端(只有CA证书才属于,但绝对不是服务器的私钥)。

完成此操作后,您可以尝试使用命令行客户端查看服务器是否配置正确:

@H_311_3@mysqL --ssl-verify-server-cert --ssl-ca=/MysqL-ssl-certs/ca-cert.pem --ssl -h hostname ...

或这样做(尽管应该确实启用验证服务器证书以使SSL / TLS有用)

@H_311_3@mysqL --ssl-ca=/MysqL-ssl-certs/ca-cert.pem --ssl -h hostname ...

这至少应该在命令行上起作用。

然后,从php获得两种选择:

  • 使用@H_311_3@mysqLi_ssl_set像你这样做,但离开$key$cert无效的,除非你想使用一个客户端证书这确实应该是从你的服务器证书不同。(我不记得那是否有效。)
  • 可能更容易,将其@H_311_3@mysqLi_ssl_set完全省略,并在全局MysqL客户端配置文件中进行配置php应该可以在其中拾取它/etc/MysqL/my.cnf,但可能会有所不同,但这取决于您的发行版):
    [clIEnt]
    

    ssl-ca=/MysqL-ssl-certs/ca-cert.pem

(这类似于服务器配置,但在客户端/客户端部分。)

对于授权部分(GRANT):

  • requIRE SSL 只需要使用SSL / TLS
  • requIRE ISSUERrequIRE SUBjeCTrequIRE X509要求客户出示客户端证书来比较所需的值(这就是你需要的情况下使用ssl-key,并ssl-cert在客户端(配置或内@H_311_3@mysqLi_ssl_set)。

解决方法

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

我的php如下所示,我做错了什么?证书是777(仅在测试时),并且相同的代码适用于其他用户的未加密连接(SSL设置被注释掉,即@H_311_3@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();

?>

大佬总结

以上是大佬教程为你收集整理的PHP到MySQL SSL连接全部内容,希望文章能够帮你解决PHP到MySQL SSL连接所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。