Facebook - 卷曲错误 SSL_CACERT SSL 证书

MeS*_*So2 5 apache iis proxy curl facebook

当要求 Facebook通过 https抓取我的页面时,我收到“卷曲错误:SSL_CACERT SSL 证书问题:无法获得本地颁发者证书” 。我该如何解决这个问题,以便 Facebook 可以无误地抓取我的页面?

该页面通过代理到 IIS 10 的 Apache 2.4 托管。Apache 处理所有证书,而 IIS 位于本地网络上。我的页面正在运行 asp 代码(所以没有 php)和类似于这些的解决方案:编辑 php.ini 文件将 curl.pem 添加到 php 文件夹将无法解决我的问题......或者我认为?!?

IIS 没有安装证书。

我确实extension=php_curl.dll启用了 -- 并extension_dir = 'C:\64bit\php-7.0.6-Win32-VC14-x64\ext'在我的 php.ini 文件中定义。我按照以下步骤在 Windows 上安装 Curl。并且 phpinfo.php 确认启用了 cURL(cURL 信息 7.47.1)。

我的 Apache 配置文件中的代理设置是:

<IfModule mod_proxy.c>
    ProxyRequests Off
    ProxyPass           / http://192.168.1.101:88/com_ssl/
    ProxyPassReverse    / http://192.168.1.101:88/com_ssl/
    RewriteRule ^(.+)$  https://www.domainname.com/$1 [P,L] 
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我的Apache 代理配置文件中没有定义RequestHeader例如在步骤 10 中建议的

RequestHeader set "X-RP-UNIQUE-ID"     "%{UNIQUE_ID}e"
RequestHeader set "X-RP-REMOTE-USER"     "%{REMOTE_USER}e"
RequestHeader set "X-RP-SSL-PROTOCOL"     "%{SSL_PROTOCOL}s"
RequestHeader set "X-RP-SSL-CIPHER"     "%{SSL_CIPHER}s"
Run Code Online (Sandbox Code Playgroud)

这是修复错误所缺少的吗?

Dan*_*erg 7

“无法获得本地颁发者证书”几乎总是当服务器没有像 TLS 握手中那样提供中间证书时您收到的错误消息,正如 WizKid 建议的那样,对服务器运行ssllabs 测试确实会告诉您如果是这样的话。

  • 我也认为这是最有可能的问题。我过去使用以下工具进行检查,发现使用起来非常简单/快速(比您建议的 Qualys 检查快得多):https://whatsmychaincert.com (https://stackoverflow.com/a/ 49050648/7362396) (4认同)