web-dev-qa-db-fra.com

Erreur "Upgrade Network": bloqué avec la vérification du certificat SSL

En essayant de mettre à jour une installation réseau/MU, j'ai eu l'erreur suivante.

Attention! Problème de mise à jour https://subdomain-A.example.com . Votre serveur peut ne pas être en mesure de se connecter aux sites qui y sont exécutés. Message d'erreur: SSL: le nom du sujet du certificat 'exemple.com' ne correspond pas au nom d'hôte cible 'sous-domaine-A.exemple.com'

Comme je sais que le certificat est valide, etc., je dois simplement contourner le contrôle de vérification de WP.

3
kaiser

J'ai dû écrire un petit plugin pour contourner le chèque - gratuit à télécharger et à utiliser.

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