Mir ist klar, dass dies wie ein Duplikat von mindestens ein paar anderen Fragen aussieht, aber ich habe sie jedes Mal mehrmals gelesen und mache immer noch etwas falsch.
Im Folgenden finden Sie den Inhalt meiner myexample.com-Nginx-Konfigurationsdatei in /etc/nginx/sites-available
.
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name myexample.com www.myexample.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;
#Configures the publicly served root directory
#Configures the index file to be served
root /var/www/myexample.com;
index index.html index.htm;
}
Es funktioniert, wenn ich zu https://myexample.com gehe, wird der Inhalt bereitgestellt und die Verbindung ist sicher. Diese Konfiguration scheint also gut zu sein.
Wenn ich nun den SSL-Port auf 9443 ändere und die nginx-Konfiguration neu lade, wird die Konfiguration ohne Fehler neu geladen, aber wenn ich https://myexample.com besuche , wird ein Fehler im Browser angezeigt connect. ERR_CONNECTION_REFUSED)
Ich habe hier , hier und hier (unter anderem) Vorschläge und Dokumentation ausprobiert , erhalte jedoch immer den Fehler ERR_CONNECTION_REFUSED.
Ich sollte beachten, dass ich einen nicht standardmäßigen Port verwenden und diesen dann explizit in die URL eingeben kann, z . B. https://myexample.com:9443 . Das will ich aber nicht. Ich möchte, dass ein Benutzer myexample.com in einen beliebigen Browser eingeben und Nginx automatisch zur sicheren Verbindung umleiten kann.
Auch hier habe ich keinerlei Probleme, wenn ich den standardmäßigen 443-SSL-Port verwende.
Edit: Ich benutze Nginx / 1.6.2 unter Debian / Jessie
Antworten:
Um die Eingabe von " https://myexample.com " in Ihrem Browser zu unterstützen und von der
nginx
Konfiguration auf Port 9443 überwachen zu lassen, benötigen Sie eine zusätzlichenginx
Konfiguration, die weiterhin auf Port 443 lauscht, da dies der IP-Port ist was der Browser verbindet .Somit:
Beachten Sie, dass für beide Abschnitte dasselbe Zertifikat / derselbe Schlüssel benötigt wird, da das Zertifikat normalerweise an den DNS-Hostnamen gebunden ist, jedoch nicht unbedingt an den Port.
Hoffe das hilft!
quelle
Wenn Sie https://example.com eingeben , besteht der Standard für das Schema https: // darin, eine Verbindung zu Port 443 herzustellen. In Ihrem Fall haben Sie Ihren Server so verschoben, dass er jetzt Port 9443 überwacht. Die Verbindung wird abgelehnt Nachricht aus diesem Grund - Port 443 wird nicht abgehört.
Sie müssen dafür sorgen, dass Port 443 abgehört wird, um Verbindungen zu Port 9443 umzuleiten, oder einen Port als Teil der URL verwenden.
quelle
Wenn Sie den Port in einen nicht standardmäßigen Port wie 9443 ändern, müssen Sie eine Umleitung von 443 zu 9443 hinzufügen. Legen Sie nginx fest, um den Proxy für diesen Port umzukehren.
quelle