
Ich nehme an, dass ich etwas übersehe, denn jedes Mal, wenn ich versuche, Inhalte zu laden, indem ich in meinem Browser auf die Subdomain klicke, wird „nicht sicher“ angezeigt, obwohl ich die darauf folgenden Schritte sudo certbot --nginx
ohne Fehler ausgeführt habe.
Hier ist meine Konfigurationsdatei für den virtuellen Host:
server {
listen 80;
listen [::]:80;
root /var/www/lms/;
server_name lms.blainelafreniere.io;
location / {
try_files $uri /index.html;
}
}
server {
server_name lms-api.blainelafreniere.io;
location / {
proxy_pass http://127.0.0.1:3001;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/lms-api.blainelafreniere.io/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/lms-api.blainelafreniere.io/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = lms-api.blainelafreniere.io) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name lms-api.blainelafreniere.io;
return 404; # managed by Certbot
}
Ich weiß nicht, ob das wichtig ist, aber ... die Hauptstammdomäne blainelafreniere.io verweist auf einen völlig anderen VPS. Meine Domäne blainelafreniere.io ist mit einem eigenen SSL-Zertifikat gesichert, und ich versuche derzeit, nur für die Subdomäne, in diesem Fall lms-api.blainelafreniere.io, ein neues SSL-Zertifikat zu generieren.
blainelafreniere.io => Server A lms.blainelafreniere.io, lms-api.blainelafreniere.io => Server B
Muss das Zertifikat der Hauptdomain auch zur Absicherung von Subdomains genutzt werden? Oder kann ich pro Subdomain ein neues Zertifikat generieren?
Antwort1
Mit demHTTP-01-HerausforderungSie können nur Zertifikate für bestimmte (ggf. mit mehreren SAN-) Hostnamen erhalten. Laut Certificate TransparencyProtokolle fürblainelafreniere.io
Sie haben kein Wildcard-Zertifikat für *.blainelafreniere.io
, daher können Sie nicht einmal dasselbe Zertifikat für Ihre Subdomains verwenden. (Wildcard-Zertifikate können Sie erhalten mitDNS-01-Herausforderung, aber das ist in diesem Fall weder notwendig noch optimal.)
Aus den Protokollen geht außerdem hervor, dass Let's Encrypt erfolgreich Zertifikate für beide Ihrer Subdomänen ( lms.api
und lms
) ausgestellt hat.das ist die richtige Art und Weise, dies zu tun.
Für die automatischen Verlängerungen müssen Sie den in der Let´s Encrypt / Certbot-Konfiguration angegebenen Standort (z. B. unter ) http://example.com/.well-known/acme-challenge/
erreichbar und verfügbar halten./etc/letsencrypt/renewal/
Derzeit 34.200.239.16
antwortet der Server überhaupt nicht auf HTTPS-Anfragen. Das liegt nicht an den Zertifikaten. Entweder lauscht Ihr Nginx nicht auf Port 443 oder es gibt eine Firewall, die ihn blockiert:
$ dig lms.blainelafreniere.io +short
34.200.239.16
$ dig lms-api.blainelafreniere.io +short
34.200.239.16
nc 34.200.239.16 443 -nvvv
(UNKNOWN) [34.200.239.16] 443 (https) : Connection timed out
sent 0, rcvd 0