2016-04-28 10 views
1

Obwohl mein SSL-Zertifikat nicht ablief und nichts in dem konfigurierten AWS-ELB geändert wurde, hängt der Zugriff auf meine Site über HTTPS plötzlich und stirbt in einem ERR_CONNECTION_TIMED_OUT. Beim Debuggen ist mir aufgefallen, dass es nicht einmal das PHP-Skript erreicht.Debuggen eines SSL https hängen ERR_CONNECTION_TIMED_OUT

Wie kann ich den Pfad zwischen dem Browser, dem Zertifikat im ELB und meinem Server debuggen, um zu sehen, wo es "feststeckt"?

Gibt es ein Protokoll für Apache auf Ubuntu, dass ich Anforderungen an den SSL-Port anzeigen kann?

Antwort

2

Sie können die Protokollierung in Apache aktivieren:

<IfModule mod_ssl.c> 
    ErrorLog /var/log/apache2/ssl_engine.log 
    LogLevel debug 
</IfModule> 

und verwenden openssl s_client wie ssl Verhandlung von Clientside sieht zu überprüfen, zB:

openssl s_client -connect stackoverflow.com:443 

grundlegende TCP-Verbindung (nicht zu ssl bezogen) können geprüft mit telnet:

  • Schichten 1-4 funktionieren gut, Verbindung etabliert:

    $ telnet stackoverflow.com 443 
    Trying 104.16.35.249... 
    Connected to stackoverflow.com. 
    Escape character is '^]'. 
    
  • Entschlossenheit Host, aber nicht Händedruck kann:

    $ telnet stackoverflow.com 443 
    Trying 104.16.37.249... 
    
  • nicht auflösen kann host:

    $ telnet stackoverflow.com 443 
    telnet: could not resolve stackoverflow.com/443: Name or service not known 
    
+0

Wenn OpenSSL läuft s_client -connect mydomain.com:443 es Hängt einfach ohne irgendeine Ausgabe. (Das gleiche für Stackoverflow zeigt Debug-Informationen). Was bedeutet das, wo die Anfrage hängen geblieben ist? Ich schätze in so einem Fall das ErrorLog in .htaccess wird nicht helfen, oder? – Noam

+0

Es hängt tatsächlich nicht unbegrenzt, ich bekomme endlich eine 'connect: Operation timed out connect: errno = 60' – Noam

+0

Dann' telnet mydomain.com 443' um zu bestätigen, dass der Port offen ist und der Server darauf hört. [tcpdump] (http://www.tcpdump.org/tcpdump_man.html)/[Wireshark] (https://www.wireshark.org/) oder ein anderer Sniffer, um detaillierte Informationen auf Paketebene zu erhalten, wenn tatsächlich ein Handshake stattfindet . –