“Upgrade Network” error: stuck with SSL certificate verification

I had to write a little plugin to bypass the check – free to download and use.

<?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;
}

Leave a Comment