【问题标题】:Proper order of connection and ssl implementation, also "Bad Handshake"正确的连接顺序和 ssl 实施,也是“坏握手”
【发布时间】:2013-10-31 19:48:47
【问题描述】:

注意:我解决了我在输入此问题时遇到了一段时间的问题,我想知道我的解决方案是否

我的 sql 数据库连接出现“握手错误”错误。当我尝试实现我最近安装的 ssl 时,它就开始了。我从以下代码开始:

    $init =mysqli_init();

    $key="path/ftpd-rsa-key.pem";
    $cert="path/ftpd-rsa.pem";
    $ca="path/cert.pem";

    mysqli_ssl_set($init, $key, $cert, $ca, NULL, NULL);

//This line was my original connection script, which was working.
//$connection = mysqli_connect("localhost", "username", "password", "database") or die(mysqli_connection_error());

    if(!$connection = mysqli_real_connect($init,"localhost", "username", "password", "database"))
      {
      die("Connect Error: " . mysqli_connect_error());
      }

我尝试了其他各种事情,包括 PDO、重建 Apache,以及切换 ssl 证书和密钥等。没有任何工作。最终我尝试回到我使用的原始代码,然后实现 ssl:

$connection = mysqli_connect("localhost", "username", "password", "database") or die(mysqli_connection_error());

$key="path/ftpd-rsa-key.pem";
$cert="path/ftpd-rsa.pem";
$ca="path/cert.pem";

mysqli_ssl_set($connection, $key, $cert, $ca, NULL, NULL);

令我惊讶的是,这奏效了。我的页面现在看起来完全正常,没有“糟糕的握手”错误。但是,由于我没有找到任何以这种方式构建它的教程或材料,我想知道这是否真的安全。 ssl 的全部目的是为了安全,这样做可以在没有 ssl 的情况下启动连接。有问题吗?

此外,有关“错误握手”错误及其原因的任何信息都会很有用。如果我们可以创建/链接指南或对它的完整解释以及导致它的原因,那将对未来的程序员有用,因为我在谷歌搜索时发现的建议解决方案范围从垃圾服务器到切换到 PDO 到降级MySQL。

【问题讨论】:

  • SSL 只保护 PHP 和 MySQL 之间的通信不被窃听者拦截。当连接到localhost 上的 MySQL 服务器时,它完全没有意义(如果服务器可以通过套接字/命名管道访问,则可能会被忽略)。
  • 这是在我的服务器上。我的密码也不是密码,文件的路径也不是path/,要清楚。
  • 没有任何区别。

标签: php mysql ssl pdo


【解决方案1】:

第二个 sn-p 告诉我你的服务器没有配置/运行证书。这就是握手失败的根源。

当您启动与 MySQL 的 SSL 连接时(使用您的第一个 sn-p),客户端和服务器都需要完全配置才能执行此操作。在 MySQL 上,这包括 SSL 证书、CA 证书等。这是通过 CLI 完成的。这通常使用--ssl-ca--ssl-cert--ssl-key mysqld命令行参数来完成。

您的第一个 sn-p 失败,因为 MySQL 没有因此返回有效的 SSL 握手。

您的第二个 sn-p 正在工作,因为您的 mysqli SSL 设置是在连接已经发生之后发生的 - 即它没有效果。连接已经有效地下降到非 SSL。

考虑为mysqld 生成一个证书,使用正确的参数重新启动它,看看是否可行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-04
    • 2012-11-25
    • 2021-04-28
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    相关资源
    最近更新 更多