【问题标题】:SSL certificate verify failed over plain HTTP (non-SSL) in WordPress updateSSL 证书在 WordPress 更新中通过纯 HTTP(非 SSL)验证失败
【发布时间】:2016-04-13 15:03:10
【问题描述】:

我正在尝试更新 WordPress 本身以及插件和主题。

更新 WordPress 从下载更新 http://downloads.wordpress.org/release/wordpress-4.4.1-new-bundled.zip

下载失败。:SSL证书问题,验证CA证书是否正确 好的。详细信息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

安装失败

我在这里读过:https://help.github.com/articles/error-ssl-certificate-problem-verify-that-the-ca-cert-is-ok/

当您收到此错误时,可能意味着您的 CA 已过期,需要更新。通常,更新您的操作系统也会更新您的 CA,并解决问题。

我向我的主人寻求帮助,他们说:

我在您发送的链接中获得了基础参考。但是根 证书颁发机构仅在您使用 ssl 时适用 网站/证书。

您发送的屏幕截图中的插件升级路径是 http 仅基于站点-这就是为什么我不了解相关性的原因。如果你是 调用一个 http 链接,ssl 没有被使用并且不相关。

但是,此请求是通过 HTTP 进行的,并且未使用 SSL。为什么会出现此错误?

【问题讨论】:

    标签: php wordpress http ssl


    【解决方案1】:

    wordpress.org 的所有内容都是基于 SSL 的网站。任何 HTTP 请求都会通过他们的 nginx 实例通过 HTTPS 路由,可能使用如下规则:

    server {
           listen         80;
           server_name    my.domain.com;
           return         301 https://$server_name$request_uri;
    }
    

    【讨论】:

      【解决方案2】:

      这是下载时发生的情况:

      wget http://downloads.wordpress.org/release/wordpress-4.4.1-new-bundled.zip
      --2016-01-11 14:40:07--  http://downloads.wordpress.org/release/wordpress-4.4.1-new-bundled.zip
      Resolving downloads.wordpress.org... 66.155.40.188, 66.155.40.189, 66.155.40.187, ...
      Connecting to downloads.wordpress.org|66.155.40.188|:80... connected.
      HTTP request sent, awaiting response... 301 Moved Permanently
      Location: https://downloads.wordpress.org/release/wordpress-4.4.1-new-bundled.zip [following]
      --2016-01-11 14:40:07--  https://downloads.wordpress.org/release/wordpress-4.4.1-new-bundled.zip
      Connecting to downloads.wordpress.org|66.155.40.188|:443... connected.
      ERROR: cannot verify downloads.wordpress.org's certificate, issued by `/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2':
        Unable to locally verify the issuer's authority.
      To connect to downloads.wordpress.org insecurely, use `--no-check-certificate'.
      Unable to establish SSL connection.
      

      所有下载都被重定向到 ssl,并且证书由 Go Daddy 的最新 CA 根签名。

      here 的 wordpress git 站点下载最新的证书,将其作为 ca-bundle.crt 保存到您的 wp-includes/certificates 目录中,确保下载的 .crt 替换当前的,然后再次尝试更新。

      【讨论】:

      • 我只是想让大家知道,替换wp-includes/certificates中的证书有效。
      【解决方案3】:

      该文件的链接重定向到 HTTPS。您可以在http://www.redirect-checker.org 看到它的实际应用情况@

      恭喜。一切似乎都很好。

      http://downloads.wordpress.org/release/wordpress-4.4.1-new-bundled.zip
      301 永久移动
      https://downloads.wordpress.org/release/wordpress-4.4.1-new-bundled.zip
      200 确定

      至于您收到该错误的原因,您的服务器无法验证证书,因为它无法获得正确的链(CA)。如您所见see here,wordpress.org 已正确配置。显然您的服务器不会信任服务器提供的链。很可能它被配置为只接受已安装的 CA。

      有几种方法可以玩这个。两者都涉及到 GoDaddy Repository 并下载 Go Daddy Secure Certificate Authority - G2 文件(应该是 this file)。

      现在,你需要做的是

      1. 请您的主机在他们的服务器上安装此链文件。如果您将它们指向存储库,它们应该为您执行此操作。这应该是微不足道的。
      2. 破解 WP 更新脚本以直接使用 CA 链。我敢打赌它使用this file 中的CURL 请求来进行请求。它可能完全是另一个文件。您可以告诉执行下载的脚本使用该 CA 文件。这对您来说不是一个很好的解决方案,因为您可能每次都必须破解该脚本。

      【讨论】:

        【解决方案4】:

        我也遇到了 Wordpress 4.4.1 的 301 问题,这似乎有不同的原因,但我的研究也从版本更改日志中得出了这一点:

        Removed SSL certificates causing errors in WP 4.4

        完整的发行说明: Wordpress Version 4.4.1

        在 diff 中,您还可以看到从以下位置删除了很多证书:

        /wp-includes/certificates/ca-bundle.crt
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-22
          • 2015-06-08
          • 1970-01-01
          • 2021-09-28
          相关资源
          最近更新 更多