Nginx SSL Certificate Chain

Posted on Sun 18 May 2014 in nginx

Im Gegensatz zu Apache bietet Nginx keine Möglichkeit im server { } Block ein Intermediate Certificate anzugeben.

Das sollte kein Problem, einfach cat example.com.crt subca.crt > example.com.chain.pem ausführen und alles ist gut.

Aber huch, der ninx Konfigurationstest schlägt fehl. Vielleicht sollte man erstmal prüfen, ob das Zertifikat und der Key zusammenpassen.

Das kann am Einfachsten mit openssl erledigen:

openssl x509 -noout -modulus -in example.com.crt | openssl md5
openssl rsa -noout -modulus -in example.com.key | openssl md5
openssl req -noout -modulus -in example.com.csr | openssl md5

Die Summen stimmten alle überein. Also habe ich mir die erstellte Datei einmal näher angesehen und festgestellt, dass in der Mitte die beiden Zertifikate ein bisschen zu nah beieinander hängen:

-----BEGIN CERTIFICATE----------END CERTIFICATE-----

Als ich die beiden so eng miteinander verbundenen Zeilen getrennt hatte wollte auch der nginx das Ganze als valide annehmen.

Als klein Bonus lieferte mir der SSL Test von SSLLabs ein schönes Ergebnis:

SSLLabs Test erinnerungsfragmente.de