2013-07-16 7 views
14

Ich habe vor kurzem ein SSL-Zertifikat auf meinem Amazon EC2 Ubuntu 12.04 (32 Bit) Server installiert mit Apache 2.SSL auf Apache2 installiert, aber HTTPS funktioniert nicht

Wenn ich über https meine Website zuzugreifen versuchen, es nicht laden. Wenn ich einen nmap-Scan mache, sehe ich, dass Port 443 nicht offen ist.

Ich habe versucht, Port 443 in meinen ip Tabellen ohne Erfolg zu öffnen. iptables -L yeilds

Chain INPUT (policy ACCEPT) 
target  prot opt source    destination 
ACCEPT  tcp -- anywhere    anywhere    tcp dpt:https 

Hier ist, wie ich ssl installiert

I modifizierte /etc/init.d/apache2.conf ssl.conf aufzunehmen und modifizierte ssl.conf die erforderlichen Pfade meiner Zertifikat zum Einbinden von Dateien , dh

SSLCertificateFile/Pfad/Datei SSLCertificateKeyFile/Pfad/Datei SSLCertificateChainFile/path/file

ich meine Sicherheit gro konfiguriert bis zu ermöglichen, eingehende Anfragen von Port 443 (TCP Quelle: 0.0.0.0/0)

Wenn ich den folgenden Test mit php

if (!extension_loaded('openssl')) 
{ 
    echo "not loaded"; 
} 
else 
{ 
    echo "loaded" ; 
} 

ich "geladen" durchzuführen.

Irgendwelche Ideen?

+1

Was passiert, wenn Sie versuchen, eine Telnet-Verbindung von einem Remote-Computer zu Ihrem Server an Port 443 zu öffnen? Verbindet es? Wenn dies der Fall ist, können Sie ein Firewall- oder Routing-Problem oder ein Problem mit iptables ausschließen. Ich wäre auch neugierig, ob deine Apache Logs etwas Interessantes zeigen. – mti2935

+0

Telnet zu 443 gibt "Connection Refused" zurück. Nichts wird an Apache Protokolle angehängt, wenn ich versuche, auf https://mydomain.net – rocketas

+1

Interessant zuzugreifen. Wie wäre es, wenn Sie eine Loopback-Verbindung vom Host selbst an Port 443 versuchen? Mit anderen Worten, telnet localhost 443. Verbindet das? Ich versuche zu isolieren, ob dies ein Apache-Problem oder ein Netzwerk-/Firewall-Problem ist. – mti2935

Antwort

17

In httpd-ssl.conf, sind Sie 443

Wenn nicht, versuchen Sie, das, und neu zu starten Apache zu Hören haben.

+1

Ich habe nicht. Während ich Apache2.conf (ubuntu Sache?) Benutze, um eine externe ssl.conf zu laden, hatte ich diese Direktive nirgendwo. Wenn ich es direkt zu meinem Apache conf hinzufüge und die Anweisung virtual host/mod_ssl.so neu konfiguriere, werden aufgelöste Dinge hinzugefügt. Danke – rocketas

+0

Dies funktionierte für mich auch, nur ich musste ändern "ports.conf" – CodeMouse92

+0

in Apache 2.4 die Datei ist 'ports.conf' – Bakhshi

3

Wenn Sie eine lokale Verbindung herstellen können (z. B. mit telnet localhost 443, wie von mti vorgeschlagen), überprüfen Sie, ob die Firewall ordnungsgemäß konfiguriert ist.

In meinem Fall blockierte ufw alles, also musste ich ufw allow 443, die das zugrunde liegende Problem auf das gleiche Symptom behoben.

+1

Danke, diese Idee half uns, herauszufinden, unser Problem. Für uns war es jedoch die Unternehmensfirewall, also sollten die Leute das auch berücksichtigen. – AlexMA

-5

Manchmal funktioniert ein iptables -F. Ich hatte den Port 443 für Inbound in Amazon geöffnet, aber die Site wurde nicht in meinem Browser geöffnet.

Angemeldet auf der Website, gab eine iptables -F und sofort war die Website zugänglich.

+4

iptables -F löscht alle Ihre Firewall-Regeln. Keine gute Idee. http://ipset.netfilter.org/iptables.man.html – Travis

4

In httpd.conf wird die folgende standardmäßig deaktiviert:

# Secure (SSL/TLS) connections 
# Include conf/extra/httpd-ssl.conf  

Entfernen Sie einfach die # vom einschließen, und starten Sie Apache.

+0

Ich werde wahrscheinlich jetzt auf die Arbeitszeit gehen, dank dieser. Vielen Dank. – haakym

6

Überprüfen Sie zuerst, ob mod_ssl aktiviert ist. Wenn nicht, aktivieren Sie es, indem Sie a2enmod ssl ausführen. Überprüfen Sie dann, ob Apache Port 443 für https abhört. Prüfen Sie dann, ob die Firewall nicht Port blockiert 443.

+1

war es die Firewall für mich ... –

0

Ich lief gerade in einer Situation, wo es einen Prozess auf Port 443, die Firewall zu hören war, war völlig offen, SELinux deaktiviert war, und ich noch konnte nicht telnet Port 443. Nicht einmal vom localhost.Ich wurde immer:

telnet 127.0.0.1 443 
telnet: connect to address 127.0.0.1: Connection refused` 

Es stellt sich die iptables NAT-Tabelle einige Regeln Verkehr auf Port 443 kommen in umleiten musste, um einen anderen Port (8443). Nichts war auf Port 8443 zu hören.

Entfernen der entsprechenden NAT-Einträge behoben das Problem für mich.