【问题标题】:WORDPRESS : cURL error 60: SSL certificateWORDPRESS : cURL 错误 60: SSL 证书
【发布时间】:2017-11-21 18:59:25
【问题描述】:

我目前正在 debian 服务器下构建 Wordpress 安装。我安装 PHP7、curl 和 Apache2

当我尝试安装新的扩展程序时,我收到以下错误消息:

cURL error 60: SSL certificate problem: self signed certificate in certificate chain

在阅读了一些处理类似问题的帖子后,我尝试用这个来修改 php.ini:

curl.cainfo = /etc/php7.0/cacert.pem

但即使重新启动 apache,我仍然面临这个问题。

有什么想法吗?

提前致谢

【问题讨论】:

标签: php wordpress apache curl


【解决方案1】:

将 'sslverify' 设置为 false 以修复 cURL 错误 60:WordPress wp_remote_get 请求中的 SSL 证书。

wp_remote_get($url, array('sslverify' => FALSE));

【讨论】:

  • 在哪里添加这个?
  • 非常好的解决方案!它解决了我的问题!太棒了!
【解决方案2】:

WordPress 使用它自己的 CA 包,位于 WP/wp-includes/certificates

直到最近,WordPress 附带的 CA 包已经过时,如本期所述:https://core.trac.wordpress.org/ticket/45807

不建议将sslverify 设置为false,您可以下载捆绑包的更新版本https://github.com/WordPress/WordPress/tree/master/wp-includes/certificates 并将其替换到wordpress 文件夹中。

【讨论】:

  • 您所说的 Github 链接中的 CA 捆绑包对我不起作用(重新启动本地 apache 和所有内容)。只有设置 'sslverify' => FALSE 做了...
【解决方案3】:

在您的测试站点中禁用 SSL 验证。

您可以通过将此行添加到文件中来做到这一点

外观>主题编辑器>functions.php或

/wp-content/themes/YOUR_THEME/functions.php:

add_filter('https_ssl_verify', '__return_false');

仅在测试站点上添加此内容,切勿在实时站点上添加。

【讨论】:

    【解决方案4】:

    根据我最近的经验,我相信“证书链中的自签名证书”消息可以准确地告诉您问题 - 您尝试访问的任何 SSL 站点都有证书不在 cacert.pem 引用的链中的链。

    这是有道理的,因为错误报告它是一个自签名证书。也就是说,它永远不会包含在下载的 cacert.pem 文件中。

    我的解决方案是获取一个 Base64 编码文件,其中包含我要访问的站点的证书链。

        How to: Use a browser to access the site you are trying to access, click the 
        certificate part of the address (usually to the left of the address box with 
        a lock icon) and the click on whatever your interface supports to see the 
        list of certificates in the chain.  Manually export those certificates to a 
        text file.
    

    然后使用文本编辑器将此文本文件附加到 PHP 用于 CURL 操作的证书列表 (cacert.pem)。


    您提到 WordPress.. WordPress v4.9.6 有一组证书,当它在 ./WordPress Instance\wp- 上升级或安装插件时专门引用这些证书包括\证书。我的权宜之计是将上面的文本文件(包含本地自签名证书链)附加到您将在该位置找到的 ca-bundle.crt 文件中。

    一个警告 - 当您升级 WordPress 时,它会覆盖 ca-bundle.crt 文件,因此您必须重新添加它们 - 除非有人有更好的解决方案..?

    【讨论】:

    • 这正是对我有用的。我知道问题在于它是自签名的,我只是不知道如何说服 WordPress 这没关系。您的解决方案是唯一有效的解决方案。对于在本地安装 WordPress 时遇到此问题的任何人,这就是解决方案。
    【解决方案5】:

    如果有人在本地机器上安装 WordPress 时遇到同样的问题,添加 http_request_args 过滤器对我有用

    <?php
    /**
     * Plugin Name: Local Dev CaFile
     * Plugin URI: https://stackoverflow.com/q/44632619/881743
     * Description: Another solution for `SSL certificate problem: self signed certificate in certificate chain apache` error for your local development
     * Version: 1.0
     * Author: John Doe
     * Author URI: https://stackoverflow.com/
     * License: WTFPL
     */
    
    add_filter( 'http_request_args', function ( $args ) {
        if ( getenv('WP_ENV') !== 'development' ) {
            return $args;
        } 
    
        $args['sslcertificates'] = ini_get( 'curl.cainfo' ) ?? $args['sslcertificates'];
    
        return $args;
    }, 0, 1 );
    

    并将其保存在 path/to/wp-content/plugins/dev-plugin.php 并从 wp-admin 激活插件,或者您可以选择将其放入您的 WPMU_PLUGIN_DIR

    希望有所帮助 干杯

    【讨论】:

      【解决方案6】:

      【讨论】:

      • @Nathan30 wordpress 版本?
      • 最新的 Wordpress 4.8
      • @Nathan30 只需下载 4.7.5 版本的 wordpress 并将 /wp-includes/certificates/ca-bundle.crt 复制到您的服务器。保留旧文件的备份。
      • 做到了,但仍然是同样的问题:/
      • 我必须把它放在哪里?在哪个 wordpress 文件上?
      【解决方案7】:

      从 wp-cli 2.4 升级 => 2.5 帮助了我。 (安装此https://github.com/wp-cli/profile-command

      【讨论】:

        【解决方案8】:

        这里没有一个答案对我有用(并且可能不适用于在他们的服务器上使用 Let's Encrypt 证书的人)。我发现最近(2021 年 9 月 30 日)Let's Encrypt Cretificates 过期了 DST Root CA X3。除了 curl 错误 60 之外,我还遇到了 Rest API 错误并且无法在 wordpress 中更新插件。可以在 wordpress 安装中更新这些:

        该补丁可在此处获得,如果不是更早的话,应该与 Wordpress 5.9(2021 年 12 月)一起提供: https://core.trac.wordpress.org/changeset/51883/trunk/src/wp-includes/certificates/ca-bundle.crt

        【讨论】:

          猜你喜欢
          • 2017-04-22
          • 2017-03-21
          • 2020-09-18
          • 2017-01-12
          • 2021-06-02
          • 2020-09-14
          • 2016-09-23
          • 2014-02-06
          • 2021-12-14
          相关资源
          最近更新 更多