【问题标题】:Make a CER Certificate accessible only by CURL on Apache2 Web-Server使 CER 证书只能由 Apache2 Web 服务器上的 CURL 访问
【发布时间】:2016-10-02 20:01:49
【问题描述】:

我创建了一个 PHP 脚本,它使用 CURL 自动验证进入需要客户端证书的网站。

证书始终在我的 apache 网络服务器上,但是可以通过键入证书的链接来访问它。例如:www.testdomain.com/cert.cer(您可以通过输入链接下载它)。

这种证书必须是私有的,不能通过键入链接访问。只需要进行身份验证,以便PHP脚本执行操作。

我正在使用 CURL、PHP 和 Apache2 服务器。 如何阻止 CER 证书,以便只有脚本可以访问它? 我已经尝试编辑权限,770(无匿名用户),但脚本都无法访问。

请帮帮我!任何建议将不胜感激。

【问题讨论】:

  • 把它放在网络根目录之外的地方。
  • 正如 Mike 所说,php 可以访问 apache 提供文件的文档根目录之外的文件。这将阻止 apache 查看/提供文件,但 php 仍然能够将其发送过来进行身份验证。您只需要确保在将 CURL 指向文件时使用完整路径。
  • 虽然不是完全重复,但原理与stackoverflow.com/questions/97984/…相同

标签: php apache ssl curl certificate


【解决方案1】:

是的,它有效! 我刚刚使用了完整路径。

curl_setopt($ch, CURLOPT_SSLCERT, "/home/ubuntu/cert.cer");
curl_setopt($ch, CURLOPT_SSLKEY, "/home/ubuntu/cert.key");

没想到,其实php可以访问所有的服务器。 谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 2017-10-24
    相关资源
    最近更新 更多