Kontakt

In dringenden Fällen kontaktieren Sie uns bitte telefonisch unter der 0151 21223574.
Name
E-Mail
Betreff
Nachricht


SSL: Intermediate CA Certificate & NGINX

Wenn das Zertifikat des Ausstellers nicht vorhanden ist, wird auf dem mobilen Google Chrome folgendes Fehlermeldung gezeigt und die Website kann nicht geladen werden:

err_cert_authority_invalid

Im Fall von Hetzner (Thawte) muss das Zertifikat von der Ausstellerwebsite heruntergeladen werden und in der domain.crt angefügt werden. D.h. in einer .crt Datei sind zwei Zertifikats-Blöcke:

-----BEGIN CERTIFICATE-----
...
der erste Block mit dem Zertifikat was zum einen private key passt
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
und hier kommt dann das heruntergeladene Intermediate CA Zertifikat von z.B. Thawte oder Comodo  rein
...
-----END CERTIFICATE-----

Sichereren DHE parameter generieren:

cd /etc/ssl/certs
sudo openssl dhparam -out dhparam.pem 4096

Der Rest ist dann relativ einfach in der nginx.conf:

http {
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;
}

Und folgendes noch in der Config des entsprechenden NGINX-Hosts:

# redirect von http zu https
server{
        listen       80;
        server_name  domain.de;
        return       301 http://
        https://www.domain.de$request_uri;
}

server{
        listen       80;
        server_name  www.domain.de;
        return       301 http://
        https://www.domain.de$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    
    ssl on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_certificate    /etc/ssl/mtp/motorradtouren-portal.de.crt;
    ssl_certificate_key    /etc/ssl/mtp/motorradtouren-portal.de.key;
    keepalive_timeout   70;

    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_session_timeout 10m;
    ssl_session_cache shared:SSL:10m;

    # ... weitere nginx config

}

Danach noch fix per sudo nginx -s reload o. sudo service nginx restart den Server neu laden und dann sollte die Website mit https laufen. Damit das natürlich auch Hand und Fuß hat, einfach mal mit folgenden Tools durchchecken:

 

Noch etwas weiterführende Posts zum Thema SSL mit NGINX: