Wie leite ich den WWW-Verkehr um, ohne die SSL-Prüfung des Browsers auszulösen?

Ich habe ein gültiges Zertifikat für example.com. Wenn Benutzer meine Website unter @ aufrufhttp: //example.co, sie werden zu @ weitergeleithttps: //example.co und alles ist gut. Wenn sie zu @ gehhttps: //example.co, alles ist gut. Wenn sie überhaupt zu @ gehhttp: //www.example.co, sie werden zu @ weitergeleithttps: //example.co und alles ist gut.

Allerdings, wenn sie zu @ gehhttps: //www.example.co, Chrome löst die SSL-Warnung aus, bevor ich umleiten kann, und weist den Nutzer an, dieser Site nicht zu vertrauen. Ich habe dieses Problem in Safari oder Firefox nicht.

Hier ist meine Nginx-Konfiguration. Was mache ich falsch

``

# Configuration for redirecting non-ssl to ssl;                                                                                                                                                         

server {
    listen *:80;
    listen [::]:80;
    server_name example.com;
    return 301 https://example.com$request_uri;
}       

# Configuration for redirecting www to non-www; 

server {    
    server_name www.example.com;
    ssl_certificate ssl/ssl_cert.crt;
    ssl_certificate_key ssl/ssl_key.key;
    listen *:80;
    listen *:443 ssl spdy;    
    listen [::]:80 ipv6only=on;
    listen [::]:443 ssl spdy ipv6only=on;

    return 301 https://example.com$request_uri;
} 

server {
    listen *:443 ssl spdy;   
    listen [::]:443 ssl spdy;
    ssl_certificate ssl/ssl_cert.crt;
    ssl_certificate_key ssl/ssl_key.key;
    server_name example.com;
}

``

EDIT: Ich sehe, dass dies eine problematische Konfiguration ist, da der zweite Block die Zertifikate betrachtet. Was ist der richtige Weg, um dies mit einem Zertifikat einzurichten, das von "example.com" anstatt von "www.example.com" liest?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage