Ich habe es geschafft, meine Zertifikate mit LE ohne Fehler zu erstellen. Ich habe es auch geschafft, meinen Datenverkehr von Port 80 auf Port 443 umzuleiten. Aber wenn ich meinen Nginx-Server neu lade, kann ich nicht auf meine Website zugreifen. Die Ngnix-Fehlerprotokolle zeigen diese Zeile:
4 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 192.168.0.104, server: 0.0.0.0:443
Ich denke, dies bedeutet, dass die Zertifikate nicht gefunden werden können. Ich habe dann zum Pfad der Zertifikate navigiert und sie sind beide vorhanden. Woran könnte das liegen? So sieht meine Ngnix-Konfiguration aus:
server {
listen 80;
server_name pumaportal.com www.pumaportal.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name pumaportal.com www.pumaportal.com;
add_header Strict-Transport-Security "max-age=31536000";
ssl_certificate /etc/letsencrypt/live/pumaportal.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pumaportal.com/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
access_log /var/log/nginx/sub.log combined;
location /.well-known {
alias /[MY PATH]/.well-known;
}
location / {
proxy_pass http://localhost:2000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Es scheint alles ziemlich einfach zu sein. Ich verstehe nicht, wo das Problem liegen könnte.
Nach dem Ausführen von nginx -t scheint alles in Ordnung zu sein:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx
ssl
lets-encrypt
Rémi
quelle
quelle
server
Blöcke? Was genau hast du gemacht, als du diesen Fehler bekamst?Antworten:
Ich vermute, Sie haben einen anderen Server, der Port 443 überwacht. Auf diesem Server ist kein SSL-Zertifikat definiert, und er wird automatisch ausgewählt (SNI). Versuchen Sie, alle symbolischen Links aus / etc / nginx / sites-enabled zu löschen, mit Ausnahme dieses einen Servers, den Sie zum Lauschen bringen möchten (falls dies möglich ist, überprüfen Sie andernfalls alle Ihre Server auf das Abhören von 443, ohne korrekt konfiguriert zu sein).
quelle
Ich habe das gleiche Problem heute Morgen behoben. Daher bin ich hier, um den Punkt von CA zu klären (der jetzt, da ich das Problem verstehe, gut gemacht wurde). Wahrscheinlich haben Sie zwei Serverblöcke:
SNI stimmt nur mit denen überein, die mit einem
ssl
Listener gekennzeichnet sind. Der Standardserver erfasst jedoch den gesamten eingehenden Datenverkehr auf 443, unabhängig von SSL oder nicht. Daher verhindert es, dass SNI von Anfang an tatsächlich funktioniert, indem der gesamte Datenverkehr für sich selbst gehortet wird.Symptome:
nginx -t
und einem Service-Reload)Lösungen:
Ich habe das Problem heute Morgen behoben, indem ich den Standard-Serverblock entfernt habe, sodass SNI auf SSL-Listenern übereinstimmen kann.
Eine alternative Lösung wäre, den
ssl
Listener und diessl_certificate
Leitungen zum Serverblock hinzuzufügen , sodass SNI im Wesentlichen auf Ihrem Standardhost aktiviert ist. Es werden immer noch SSL-Fehler angezeigt, daher ist dies nicht die beste Lösung, aber Ihr SNI funktioniert trotzdem :)quelle
Bewerben Sie sich
default_server
entweder auf example.com oder www.example.com. Nicht beide.Daher wird dies funktionieren:
Hinweis zu virtuellen Hosts: Stellen Sie sicher, dass der
default_server
Parameter an keiner anderen Stelle definiert ist - wenn Sie mehrere Hosts auf dem Server haben.quelle
Spät zum Spiel wie immer, aber da es mir geholfen hat ... Überprüfen Sie, ob das Zertifikat fehlerhaft ist. Beim Erstellen der "einheitlichen" CRT (CRT + Intermediate), tun
Ich habe irgendwie eine LF verloren und eine Zeile wie diese bekommen:
anstatt
und nginx würde das Zertifikat nicht annehmen und mit dem oben genannten Fehler versagen.
Tun
gab mir den hinweis für openssl würde fehler raus.
quelle
Überprüfen Sie, ob Ihre Dateiberechtigungen für die Zertifikate korrekt sind. Bitte posten Sie die Verzeichnisliste (
ls -la
)quelle