【问题标题】:PHP connection to remote mysql with ssl works via command but not in browser使用 ssl 与远程 mysql 的 PHP 连接可以通过命令工作,但不能在浏览器中工作
【发布时间】:2017-12-09 09:23:26
【问题描述】:

我想在 PHP 中使用 ssl 连接到 远程 (AWS) mysql 服务器。 p>

我的脚本在我通过命令行执行时有效,但在我从浏览器调用时无效。

$con=mysqli_init();
mysqli_ssl_set($con,NULL,NULL,"path/to/cacert.pem",NULL,NULL);
$link = mysqli_real_connect($con, "host", "username", "password");

我正在使用 php7/Apache/CentOs。我尝试更改CA 文件所有权权限,并注意到它需要读取权限才能在控制台上执行。但在浏览器中,即使我向所有人(chmod 777)授予完全权限,它仍然无法正常工作。

我得到的错误是: 警告:加载 cafile 流失败。 当我检查文件是否存在时,它返回 true,但当我检查 is_readible 时,也会出错。

有人可以帮忙吗?谢谢!

【问题讨论】:

    标签: php mysql amazon-web-services ssl browser


    【解决方案1】:

    所以我认为可读性和权限可能存在问题。我可以将问题缩小到证书文件存在但不可读。我通过 ftp 使用 filezilla 将它移到了我的服务器上。

    我可以通过创建一个新的 .pem 文件并将原始文件的内容复制到其中来解决我的问题。这个现在可以阅读并且可以在浏览器中使用,但我不知道为什么,因为它们都具有相同的 chmod xxx 权限和 chown 所有权。

    详细说明(针对使用AWS MYSQL有类似问题的用户)

    1. 在文本编辑器中打开 rds-combined-ca-bundle.pem 文件(下载链接:https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem)。

    2. 复制内容。

    3. 在您的服务器上,应该运行 php 脚本创建新文件并将文本粘贴到其中。(它可能需要一些额外的编辑,开始/结束标签在单独的行中,新行结束在与原始文件相同的位置文字)

    【讨论】:

      猜你喜欢
      • 2012-06-24
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多