Mal wieder einer aus der Ecke #selflart:
Ein Kaufzertifikat läuft aus und soll durch ein LE-Zertifikat ersetzt werden. Kein Ding. Tausendmal berührt, tausendmal ist nichts passiert.
Alt:
SSLCertificateFile /path/to/certificate.crt SSLCertificatekeyFile /path/to/privkey.key SSLCertificateChainFile /path/to/chain.crt
SSLCertificateChainFile ist allerdings deprecated, man soll Zertifikat und Chain stacken.
Kein Problem!
SSLCertificateFile /path/to/le/fullchain.pem SSLCertificatekeyFile /path/to/le/privkey.pem
Webserver reloaded, mit openssl s_client … | openssl x509…
gegengescheckt, alles fein.
Ein Tag später fällt auf: Builds gehen nicht mehr, Java mault mit kryptischen Stacktraces über kaputtes SSL. Phase eins Arschkartenrouting (da bin ich ein ebenbürtiger Mitspieler): Fixt euer gammliges Java, daß es auch mit LE zurande kommt!. Jira-Tickets entstehen. Man glaubt gar nicht, wie groß ein Jira-Ticket werden kann, bevor überhaupt jemand an dem Problem arbeitet!
Jedenfalls, um es abzukürzen: Nach Phase n Arschkartenrouting stellt sich raus: Der Webserver sendet nur sein eigenes Zertifikat, nicht aber das Intermediate aus fullchain.pem
.
Die Lösung ist damit klar:
SSLCertificateFile /path/to/le/cert.pem SSLCertificateChainFile /path/to/le/chain.pem SSLCertificatekeyFile /path/to/le/privkey.pem
Argh!