Ich habe vor kurzem ein SSL-Zertifikat auf meinem Amazon EC2 Ubuntu 12.04 (32bit) -Server installiert, auf dem Apache 2 ausgeführt wird.
Wenn ich versuche, über https auf meine Website zuzugreifen, wird diese nicht geladen. Wenn ich einen nmap-Scan durchführe, sehe ich, dass Port 443 nicht geöffnet 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
So habe ich ssl installiert
Ich habe /etc/init.d/Apache2.conf geändert, um ssl.conf einzuschließen, und modifizierte ssl.conf, um die erforderlichen
SSLCertificateFile /path/fileSSLCertificateKeyFile /path/fileSSLCertificateChainFile/path/file
Ich habe meine Sicherheitsgruppe so konfiguriert, dass eingehende Anforderungen von Port 443 zugelassen werden (TCP-Quelle: 0.0.0.0/0).
Wenn ich den folgenden Test mit PHP durchführen
if (!extension_loaded('openssl'))
{
echo "not loaded";
}
else
{
echo "loaded" ;
}
Ich werde "geladen".
Irgendwelche Ideen?
Haben Sie in httpd-ssl.conf Hören Sie 443
Wenn nicht, versuchen Sie, das hinzuzufügen und Apache neu zu starten.
Prüfen Sie zunächst, ob mod_ssl aktiviert ist. Wenn nicht, aktivieren Sie es, indem Sie a2enmod ssl ausführen. Prüfen Sie dann, ob Apache an Port 443 auf https wartet. Prüfen Sie dann, ob die Firewall den Port 443 nicht blockiert.
In httpd.conf ist Folgendes standardmäßig deaktiviert:
# Secure (SSL/TLS) connections
# Include conf/extra/httpd-ssl.conf
Entfernen Sie einfach das # aus dem Include und starten Sie Apache neu.
Wenn Sie eine lokale Verbindung herstellen können (z. B. mit telnet localhost 443
, wie von mti vorgeschlagen), prüfen Sie, ob die Firewall ordnungsgemäß konfiguriert ist.
In meinem Fall blockierte ufw
alles, sodass ich ufw allow 443
musste, wodurch das zugrunde liegende Problem auf dasselbe Symptom behoben wurde.
Wenn jemand dies findet und Amazon Lightsail verwendet (wie ich), müssen Sie die Web-Benutzeroberfläche verwenden, um Port 443 explizit zu öffnen.
Ich habe Stunden damit verbracht, meine Serverkonfigurationsdateien zu überfluten, bevor ich Folgendes entdeckte: /
Für mich ist es der dumme Chrome Cache. Ctrl + Shift + Del
, um den Cache zu leeren, starten Sie Chrome neu und SSL funktioniert jetzt ordnungsgemäß.
Ich bin gerade in eine Situation geraten, in der es einen Prozess gab, der Port 443 abhörte, die Firewall vollständig geöffnet war, SELinux deaktiviert war und ich immer noch konnte nicht auf Port 443 telnet. Nicht einmal vom localhost. Ich habe immer bekommen:
telnet 127.0.0.1 443
telnet: connect to address 127.0.0.1: Connection refused`
Es stellte sich heraus, dass die iptables NAT - Tabelle einige Regeln hatte, die den auf Port 443 eingehenden Datenverkehr zu einem anderen Port (8443) umleiteten. An Port 8443 hörte nichts zu.
# iptables --table nat --list
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:https redir ports 8443
Das Entfernen der relevanten NAT -Einträge hat das Problem für mich behoben.
Wenn die SSL-Schlüssel nicht festgelegt sind (oder von Gremlins unerklärlich auskommentiert wurden), schlägt Apache 2.2 SSL im Hintergrund fehl. Es wird kein Fehler im Protokoll angezeigt und 443 wird nicht überwacht. Die http: 80-Sites funktionieren.