Ankündigung

Einklappen
Keine Ankündigung bisher.

CURL SSL: WordPress could not establish a secure connection to Wordpress.org

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CURL SSL: WordPress could not establish a secure connection to Wordpress.org

    Hi Du!

    Ich möchte eine Warning Meldung bei meiner frischen Wordpress Installation beheben.
    Problem tritt sowohl bei Wordpress 3.9.2 und 4.0-RC1 auf. Verwende Curl Version: 7.37.1, PHP 5.5.14, Safari 8, OS X 10.10

    URL: http://wp.dev/wp-admin/update-core.php

    Fehlermeldung:
    Warning: An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>. (WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.) in /Library/WebServer/Documents/work/wp.dev/wp-admin/includes/plugin-install.php on line 77
    Call Stack
    # Time Memory Function Location
    1 0.0019 428192 {main}( ) ../update-core.php:0
    2 3.2465 21112792 list_plugin_updates( ) ../update-core.php:521
    3 3.2498 21281256 plugins_api( ) ../update-core.php:243
    4 3.7031 21290200 trigger_error ( ) ../plugin-install.php:77
    Fehler wurde von mir eingegrenzt, gab einiges bei Google, insgesamt über 3 Stunden recherchiert und getestet...

    Fehler entsteht durch Curl.
    Die Wordpressisnstallation versucht eine Verbindung mit api.wordpress.org aufzubauen. Die URL wird resolved zur IP https://66.155.40.203 bzw. 66.155.40.203:443, das Gleiche in Grün.
    CURL hat allerdings ein Problem damit, dass das SSL Zertifikat ein Wildcard Zertifikat für *.wordpress.org ist und somit der Hostname nicht passt (66.155.40.203).

    Herausgefunden durch 'HTTPS Tester' Plugin von Wordpress sowie 'Core Control' (Davon Modul: External HTTP Access Logger)Plugin von Wordpress.

    HTTPS Tester gibt mir:
    [PASS]: Your WordPress install claims to support HTTPS Connections
    [PASS]: Checking that the HTTPS Root Certificate bundle exists and is accessible
    [PASS]: cURL is installed and supports SSL communication, cURL Details: version_number=468225; age=3; features=33469; ssl_version_number=0; version=7.37.1; host=x86_64-apple-darwin14.0; ssl_version=SecureTransport; libz_version=1.2.5; protocols=dict,file,ftp,ftps,gopher,http,https,ima p,imaps,ldap,ldaps,pop3,pop3s,rtsp,smtp,smtps,teln et,tftp
    [PASS]: OpenSSL is installed. OpenSSL 0.9.8za 5 Jun 2014 9470383
    [PASS]: Checking if stream_socket_client exists
    [PASS]: Checking if openssl_x509_parse exists
    [FAIL]: Verifying api.wordpress.org resolves correctly. 66.155.40.202
    [PASS]: [Streams] Communication with WordPress.org suceeded, it took 0.871 seconds
    [PASS]: [Streams with a POST body] Communication with WordPress.org suceeded, it took 0.874 seconds
    [FAIL]: [cURL] Communication with WordPress.org failed with error: [http_request_failed]: SSL: certificate verification failed (result: 5)
    [FAIL]: [cURL with a POST body] Communication with WordPress.org failed with error: [http_request_failed]: SSL: certificate verification failed (result: 5)
    [INFO]: PHP Version: 5.5.14
    Und der Core Tester gibt mir, beispielsweise dafür ein Request, das Folgende:
    URL https://api.wordpress.org/plugins/update-check/1.1/
    Method POST
    Result error
    Error Details
    http_request_failed SSL: certificate verification failed (result: 5)
    Time Taken 0.43059110641479 seconds
    HTTP Args
    timeout (integer) 3
    redirection (integer) 5
    httpversion (string) 1.0
    user-agent (string) WordPress/4.0-RC1; http://wp.dev
    reject_unsafe_urls (boolean) false
    blocking (boolean) true
    headers
    Array
    (
    )
    cookies
    Array
    (
    )
    compress (boolean) false
    decompress (boolean) true
    sslverify (boolean) true
    sslcertificates (string) /Library/WebServer/Documents/work/wp.dev/wp-includes/certificates/ca-bundle.crt
    stream (boolean) false
    filename NULL
    limit_response_size NULL
    HTTP POST body
    Array
    (
    [plugins] => {"plugins":{"akismet\/akismet.php":{"Name":"Akismet","PluginURI":"http:\/\/akismet.com\/","Version":"3.0.1","Description":"Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from comment and trackback spam<\/strong>. It keeps your site protected from spam even while you sleep. To get started: 1) Click the \"Activate\" link to the left of this description, 2) <a href=\"http:\/\/akismet.com\/get\/\">Sign up for an Akismet API key<\/a>, and 3) Go to your Akismet configuration page, and save your API key.","Author":"Automattic","AuthorURI":"http:\/\/automattic.com\/wordpress-plugins\/","TextDomain":"akismet","DomainPath":"","Network" :false,"Title":"Akismet","AuthorName":"Automattic" },"core-control\/core-control.php":{"Name":"Core Control","PluginURI":"http:\/\/dd32.id.au\/wordpress-plugins\/core-control\/","Version":"1.1","Description":"Core Control is a set of plugin modules which can be used to control certain aspects of the WordPress control.","Author":"Dion Hulse","AuthorURI":"http:\/\/dd32.id.au\/","TextDomain":"","DomainPath":"","Network":false, "Title":"Core Control","AuthorName":"Dion Hulse"},"hello.php":{"Name":"Hello Dolly","PluginURI":"http:\/\/wordpress.org\/plugins\/hello-dolly\/","Version":"1.6","Description":"This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly<\/cite> in the upper right of your admin screen on every page.","Author":"Matt Mullenweg","AuthorURI":"http:\/\/ma.tt\/","TextDomain":"","DomainPath":"","Network":false, "Title":"Hello Dolly","AuthorName":"Matt Mullenweg"},"https-debugger\/https-debugger.php":{"Name":"HTTPS Debugger","PluginURI":"http:\/\/wordpress.org\/","Version":"1.1","Description":"Used to determine if there's anything wrong with the communication to WordPress.org over HTTPS. See Dashboard -> HTTPS Tester (If using multisite, visit Updates -> HTTPS Tester in the network admin.)","Author":"the WordPress team","AuthorURI":"http:\/\/wordpress.org\/","TextDomain":"","DomainPath":"","Network":true," Title":"HTTPS Debugger","AuthorName":"the WordPress team"}},"active":["core-control\/core-control.php","https-debugger\/https-debugger.php"]}
    [translations] => []
    [locale] => ["en_US"]
    [all] => true
    )
    HTTP Transports WP_HTTP_curl
    Request Time 2014-08-28 17:10:38 -0
    Es lässt sich also einschränken auf: SSL: certificate verification failed (result: 5)
    Jetzt kommt der Fehler, soweit gegoogelt, vor wenn Curl das Zertifikat nicht akzeptiert.
    Fehlerbehebung soll sein, CURL das Zertifikat bekannt zu machen via .pem Datei.
    Folgendes habe ich versucht:

    1.)
    http://haxx.se/ca/cacert.pem
    gedownloadet und bekannt gemacht via 'curl.cainfo =' in php.ini, kein Erfolg.

    2.)
    Manueller vorgegangen, via Safari geoeffnet: https://66.155.40.203
    Safari meckert weil der Hostname nicht passt, laut einem anderen Googleeintrag soll man jetzt auf 'Trust All' klicken, damit es im 'Keychain Access' Programm vom Apple reinkommt. Denn angeblich überschreibt dieses Programm bei OS X die Curl Settings. Gesagt getan -> Kein Erfolg

    3.) Manueller vorgegangen via Terminal, Zertifikat direkt von der Seite https://66.155.40.203 geladen und folgendes ueberprueft:
    Code:
    Usernames-MacBook-Air:apache2 username$ curl --cacert /Users/username/Desktop/\*.wordpress.org.cer https://66.155.40.203
    curl: (51) SSL: certificate verification failed (result: 5)
    Jetzt habe ich noch das Zertifikat selbst überprüft via:
    https://www.geocerts.com/ssl_checker
    Eingetippt: 66.155.40.203 :443

    Erhalte:
    Certificate Common Name (CN) and Hostname does not match?
    The hostname (66.155.40.203) does NOT match the Common Name in the certificate (*.wordpress.org). This certificate is currently invalid for this host.
    Wie ich es drehe und wende, scheint das Problem nur serverseitig seitens Wordpress behoben werden zu können!?
    So viele Ergebnisse bei Google und keinen Erfolg... leicht demotivierend.

    Hat jemand Erfahrung/einen Tipp?
    Bin fuer alles was Erfolg verspricht dankbar

    Update://
    Habe noch ein Ticket eröffnet bei Wordpress.org selbst und es als potentiellen Fehler gemeldet, damit, falls es ausschließlich serverseitig lösbar ist, getan wird: https://meta.trac.wordpress.org/ticket/591

    Update2://
    Habe eine temporäre Lösung gefunden, die diese Updatechecks über PHP Streams anstatt über cURL abwickelt.

    wp-config.php
    ....

    add_filter( 'http_api_transports', function()
    {
    return array( 'streams' );
    });
    Quelle: http://wordpress.stackexchange.com/q...pdate-requests

    Das ist jedoch nur eine temporäre Lösung, um keine weiteren Fehler zu bekommen.
    Gedanken dazu, Vorschläge zum Testen oder Ähnliches bitte unbedingt posten!

Lädt...
X