web-dev-qa-db-ja.com

「ネットワークのアップグレード」エラー:SSL証明書の検証で動けなくなる

1つのネットワーク/ MUインストールを更新しようとすると、次のエラーが発生しました。

警告!アップデート問題 https://subdomain-A.example.com 。ご使用のサーバーは、それを実行しているサイトに接続できない可能性があります。エラーメッセージ:SSL:証明書のサブジェクト名 'example.com'がターゲットのホスト名 'subdomain-A.example.com'と一致しません

証明書が有効であることなどを知っているので、どういうわけかWPからの検証チェックを迂回する必要があります。

3
kaiser

私はチェックを迂回するための小さなプラグインを書く必要がありました - ダウンロードして使用するのは無料です。

<?php
/**
 * Plugin Name: Upgrade SSL Bypass
 * Description: The DB-Upgrade process for networks does not work if there's an error with your SSL certificate. This plugin bypasses the check by disabling the verification in case of an error.
 * Version:     2013-01-02.1502
 * Author:      Franz Josef Kaiser <[email protected]>
 * Author URI:  http://unserkaiser.com
 * License:     The MIT License (MIT)
 * LicenseURI:  http://www.opensource.org/licenses/mit-license.php
 */
// No direct file access
defined( 'ABSPATH' ) OR exit;

add_filter( 'http_request_args', 'upgrade_ssl_bypass', 10, 2 );
/**
 * Callback for a HTTP request used to switch the
 * SSL verification in case of a WP error response.
 * @param  array  $r   Request arguments
 * @param  string $url Request URL
 * @return array  $r
 */
function upgrade_ssl_bypass( $r, $url )
{
    if (
        ! isset( $_GET )
        OR ! isset( $_GET['action'] )
        OR 'upgrade' !== $_GET['action']
    )
        return $r;

    if (
        is_wp_error( $response = wp_remote_get(
             admin_url( 'upgrade.php?step=upgrade_db' )
            ,array(
                 'timeout'     => 120
                ,'httpversion' => '1.1'
             )
        ) )
        AND strstr( $response->get_error_message(), 'SSL: certificate subject name' )
    )
        add_filter( 'https_ssl_verify', '__return_false' );

    return $r;
}
3
kaiser