首页 文章

在WordPress更新中,SSL证书验证通过纯HTTP(非SSL)失败

提问于
浏览
2

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

从http://downloads.wordpress.org/release/wordpress-4.4.1-new-bundled.zip更新WordPress下载更新 . 下载失败: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 . 为什么我收到此错误?

4 回答

  • 0

    以下是下载时发生的情况:

    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 site的最新证书,将其保存到wp-includes / certificates目录中作为ca-bundle.crt,确保下载的.crt替换当前的.crt,然后再次尝试更新 .

  • 1

    所有 wordpress.org 都是基于SSL的站点 . 任何HTTP请求只是通过他们的nginx实例通过HTTPS路由,可能有这样的规则:

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

    您对该文件的链接重定向到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 . 显然,您的服务器赢得't trust the chain provided by the server. Most likely it'配置为仅接受已安装的CA.

    有几种方法可以玩这个 . 两者都涉及到GoDaddy Repository并下载Go Daddy安全证书颁发机构 - G2文件(它应该是this file) .

    现在,你需要做的是

    • 要求您在其服务器上安装此链文件 . 如果您将它们指向存储库,它们应该为您执行此操作 . 这应该是微不足道的 .

    • 破解WP更新脚本以直接使用CA链 . 我的赌注是它使用this file中的CURL请求来进行请求 . 它可能是另一个文件 . 您可以告诉执行下载的脚本使用该CA文件 . 这对你来说不是一个好的解决方案,因为你可能不得不每次都破解该脚本 .

  • 2

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

    Removed SSL certificates causing errors in WP 4.4

    完整版发行说明:Wordpress Version 4.4.1

    在差异中,您还可以看到从以下位置删除的许多证书:

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

相关问题