Ich versuche, nur das Stammverzeichnis meiner Website auf https umzuleiten. Obwohl das Umschreiben erfolgt, liefert https nichts. Der Browser sagt. connecting to thinkingmonkey.me...
und stagniert.
- Listen 80 & Listen 443 sind in der conf-Datei vorhanden.
- Ich habe httpd neu gestartet.
- Ich verwende die richtige Zertifikatdatei und private Schlüsseldatei.
- In den httpd-Protokollen und SSL-Protokollen sind keine Fehler vorhanden (ich habe ein separates Protokoll für SSl).
- Es wurde buchstäblich nichts im SSL-Zugriffsprotokoll protokolliert, selbst wenn ich versuche, direkt auf https://thinkingmonkey.me zuzugreifen .
A netstat -pant | grep httpd
hat dies:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 :::443 :::* LISTEN 1334/httpd
tcp 0 0 :::80 :::* LISTEN 1334/httpd
.htaccess:
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ https://thinkingmonkey.me [L,R=302]
Daten neu schreiben:
my-ip - - [24 / Jan / 2012: 19: 01: 14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18 weibl. [rid#7fa2339336d8/initial] (2) init rewrite engine mit angeforderter uri /
my-ip - - [24 / Jan / 2012: 19: 01: 14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18 weibl. [Rid#7fa2339336d8/initial] (1) pass /
my-ip - - [24 / Jan / 2012: 19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18 weibl. [Rid#7fa2339336d8/initial] (3) [perdir / mysite /] Streifen-Per-Dir-Präfix: / mysite / ->
my-ip - - [ 24 / Jan / 2012: 19: 01: 14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18 weibl. [Rid#7fa2339336d8/initial] (3) [perdir / mysite /] Anwenden des Musters '^ (. *) $' Auf uri ''
my-ip - - [24 / Jan / 2012: 19: 01: 14 +0000] [thinkmonkey.me/sid#7fa2335ceb18 weibl. input = '80 'pattern = '80' => stimmt überein
my-ip - - [24 / Jan / 2012: 19: 01: 14 +0000] [thinkmonkey.me/sid#7fa2335ceb18 weibl. [rid#7fa2339336d8/initial] (4) [perdir / mysite /] RewriteCond: input = ' / 'pattern =' ^ / $ '=> stimmte mit
my-ip überein - - [24 / Jan / 2012: 19: 01: 14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18 weibl. [rid#7fa2339336d8/initial] (2 ) [perdir / mysite /] '' -> ' https://thinkingmonkey.me '
my-ip - - [24 / Jan / 2012: 19: 01: 14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18] neu schreiben [rid # 7fa2339336d8 / initial] (2) [perdir / mysite /] erzwingt explizit die Weiterleitung mit https://thinkingmonkey.me
my-ip - - [24 / Jan / 2012: 19: 01: 14 +0000] [thinkmonkey. me / sid # 7fa2335ceb18] [rid # 7fa2339336d8 / initial] (1) [perdir / mysite /] entkommt https://thinkingmonkey.me zur Weiterleitung
my-ip - - [24 / Jan / 2012: 19: 01: 14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (1) [perdir / mysite /] Umleitung auf https: / /thinkingmonkey.me [REDIRECT / 302]
Hier sind meine virtuellen Hosts.
<VirtualHost *:80>
ServerName thinkingmonkey.com
ServerAlias www.thinkingmonkey.com www.thinkingmonkey.me
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?thinkingmonkey\.(com|me)$ [NC]
RewriteRule ^ http://thinkingmonkey.me%{REQUEST_URI} [L,R=301]
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /mysite/
ServerName thinkingmonkey.me
ErrorLog logs/site-error_log
CustomLog logs/site-access_log common
RewriteEngine On
RewriteLog "/var/log/rewrite.log"
RewriteLogLevel 3
</VirtualHost>
<VirtualHost *:443>
ServerName thinkingmonkey.me
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /path/to/my.crt
SSLCertificateKeyFile /path/to/my.key
SSLCertificateChainFile /path/to/my.ca-bundle
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
lsof -i -P | grep 443
httpd 1334 root 6u IPv6 3297 0t0 TCP *:443 (LISTEN)
httpd 1335 apache 6u IPv6 3297 0t0 TCP *:443 (LISTEN)
httpd 1336 apache 6u IPv6 3297 0t0 TCP *:443 (LISTEN)
httpd 1337 apache 6u IPv6 3297 0t0 TCP *:443 (LISTEN)
httpd 1338 apache 6u IPv6 3297 0t0 TCP *:443 (LISTEN)
httpd 1339 apache 6u IPv6 3297 0t0 TCP *:443 (LISTEN)
httpd 1340 apache 6u IPv6 3297 0t0 TCP *:443 (LISTEN)
httpd 1341 apache 6u IPv6 3297 0t0 TCP *:443 (LISTEN)
httpd 1342 apache 6u IPv6 3297 0t0 TCP *:443 (LISTEN)
Was läuft hier falsch?
quelle
:::443
und nicht bindend0.0.0.0:443
. Ist das noch so? Was bekommen Sie vonlsof -i -P | grep 443
?lsof -i -P | grep 80
listet auch nur ipv6 auf !!Antworten:
OK, versuchen Sie dies:
Gibt das eine Antwort oder hängt es? Wenn es reagiert, sollten Sie etwas bekommen, das aussieht wie:
(Wenn Telnet nicht installiert ist, installieren Sie es. Sie können die Telnet-Sitzung
control-]
beenden, indem Sie zum Beenden "q" drücken und dann eingeben.)Wenn Sie über die lokale Schnittstelle eine Verbindung zum Webserver herstellen können (und der Webserver aufgrund Ihrer Protokolle ausgeführt wird), liegt ein Firewall-Problem vor (ich weiß, dass Sie gesagt haben, dass Sie die Firewall nicht festgelegt haben, dies wird jedoch der Fall sein bestätigen). Führen Sie in diesem Fall Folgendes aus:
und poste die Ergebnisse.
Aktualisieren
Aus Kommentaren geht hervor, dass dies eine EC2-Instanz ist. Sehen Sie sich also die Sicherheitsgruppen an, die dieser Instanz zugeordnet sind. Stellen Sie sicher, dass Sie tcp / 443 in Ihren Sicherheitsgruppen zulassen.
So etwas könnte helfen:
http://cloud-computing.learningtree.com/2010/09/24/understanding-amazon-ec2-security-groups-and-firewalls/
quelle
TELNET
verbindet gut.iptables -L -n
gibt: | Chain INPUT (Richtlinie ACCEPT) | Ziel | prot opt source | Ziel | Kette VORWÄRTS (Richtlinie AKZEPTIEREN) | Ziel | prot opt source | Ziel | Kettenausgang (Richtlinie AKZEPTIEREN) | Ziel | prot opt source | Ziel |AWS Management Console
Auf Dual-Stack-Hosts bedeutet das Abhören von :: 443, dass Sie sowohl IPv4 als auch IPv6 abhören. Testen Sie die TLS-Aushandlung selbst:
Dann können Sie testen, ob HTTP antwortet:
So würde ich umleiten:
Bitte entfernen
RewriteLog
undRewriteLogLevel
in Produktion, oder es besteht die Gefahr, dass eine Festplatte sinnlos gefüllt wird.quelle
RewriteLog
undRewriteLogLevel
sind nur für mein Debugging. Es wird entfernt, wenn die Site online geht.openssl s_client -connect localhost:443
sagteCONNECTED(00000003)
...SSL handshake has read 5857 bytes and written 311 bytes
unterNew, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
am Ende:Verify return code: 0 (ok)
Ähnliches Problem, Apache2 reagierte auf 443, nichts in den Protokollen
gab mir folgendes
Das Problem war, dass my.domain.com eine andere IP-Adresse ist als auf den virtuellen Hosts konfiguriert. Als Server werden 2 IPs verwendet. Apache antwortete also auf 443, konnte aber keine Website mit der Verbindung verbinden. passend zur IP ist alles gut
quelle
Öffnen Sie
httpd.conf
und prüfen Sie, ob die folgende Zeile vorhanden ist:Wenn nicht, aktualisieren Sie das
httpd.conf
mit diesem und starten Sie Apache neu.quelle
sudo a2enmod ssl
. Vielen Dank.Es lohnt sich zu überprüfen, welche Art von SSL-Richtlinie Ihr Anbieter anbietet. Nach tonnenweise Debugging stellte ich fest, dass mein Problem dadurch verursacht wurde, dass mein Hosting-Anbieter Port 443 extern sperrte, bis ich sie für ein SSL-Zertifikat bezahlte. Ich hatte geplant, LetsEncrypt zu verwenden, aber ich muss den Host wechseln, bevor ich das tun kann. Wenn keine der anderen Lösungen hilft und Sie sich in einer VPS-Umgebung befinden (oder in einer Umgebung, in der Sie möglicherweise weniger Kontrolle über Ihr Netzwerk haben), lohnt es sich möglicherweise, dies noch einmal zu überprüfen.
quelle
Wenn die SSL-Schlüssel nicht festgelegt sind (oder unerklärlicherweise von Gremlins auskommentiert wurden), schlägt Apache 2.2 SSL stillschweigend fehl. Es wird kein Fehler im Protokoll angezeigt und 443 wird nicht abgehört. Die http: 80-Sites funktionieren.
quelle