Mein SSL-Zertifikat ist für mydomain.com, daher versuche ich, alle www.mydomain.com ohne www umzuleiten. Nun, all diese Arbeiten:
http://www.mydomain.com
http://mydomain.com
https://mydomain.com
Aber https://www.mydomain.com gibt dem Browser die Warnung "Site nicht sicher" aus. Ich habe versucht, eine Weiterleitung wie die folgende einzurichten, aber bitte sagen Sie mir, wo mein Skript fehlerhaft ist.
server {
listen 80;
server_name www.mydomain.com mydomain.com;
rewrite ^(.*) https://mydomain.com$1 permanent;
client_max_body_size 100M;
location / {
index index.htm index.html index.php;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/mysite$fastcgi_script_name;
}
}
server {
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/public.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
server_name www.mydomain.com;
rewrite ^(.*) https://mydomain.com$1 permanent;
}
server {
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/public.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
client_max_body_size 100M;
server_name mydomain.com;
root /var/www/mysite;
index index.php;
location ~ \.php$ {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/mysite$fastcgi_script_name;
}
}
Antworten:
Ihr Konfigurationsskript ist nicht fehlerhaft.
Bei Ihrer aktuellen Konfiguration (vorausgesetzt, Sie haben ein Standard-SSL-Zertifikat für einen einzelnen Betreff installiert) ist dies keine Option .
Der Grund dafür ist die Funktionsweise von https-Verbindungen:
Da der Validierungsprozess fehlschlägt, empfängt der Server niemals die HTTP-Anforderung für www.mydomain.com auf dem Listener von Port 443 und kann daher keine Umleitungsantwort an den Client / Browser senden.
Um die Umleitung von https://www.mydomain.com/ zu https://mydomain.com zu aktivieren , haben Sie einige Optionen, aber alles hängt davon ab: Sie benötigen für jeden Hostnamen ein Zertifikat mit einem Betreff.
SAN-Zertifikat
mydomain.com
und übereinwww.mydomain.com
Mehrere IP-Adressen
www.mydomain.com
www.mydomain.com
https soserver
, dass es die neue IP-Adresse abhört (immer noch Port 443).www.mydomain.com
httpsserver
für die Verwendung des neuen ZertifikatsTLS SNI
www.mydomain.com
Da SNI nur eine eingeschränkte Browserunterstützung bietet, würde ich Vorschlag 3 vermeiden. Lesen Sie die Nginx-Dokumentation zu SNI, wenn Sie möchten (unten auf der Seite).
UPDATE : Einige Zertifizierungsstellen bieten Einzelfachzertifikate mit einem kostenlosen zusätzlichen SAN für das
www.
Präfix an.quelle
Sie können die Warnungen "Site nicht sicher" nicht vermeiden, wenn Ihre Domains nicht übereinstimmen. Ihr Zertifikat muss für jede einzelne Domain gültig sein, die Sie über HTTPS bereitstellen möchten, einschließlich der Nur-Weiterleitungs-Domains.
Wenn das Zertifikat ungültig für „www.example.com“ ist, ist nur gültig für „example.com“, dann kann man nicht von umleiten https://www.example.com/ zu https://example.com/ ohne eine Sicherheitswarnung.
quelle
Sie könnten dies versuchen:
Andernfalls können Sie ein Platzhalterzertifikat erhalten, das alle Domänen der dritten Ebene abdeckt.
quelle