chiark / gitweb /
bin/make-cert, bin/fix-cert-chain: Hack certificate chains for compatiblity. master
authorMark Wooding <mdw@distorted.org.uk>
Sat, 2 Oct 2021 10:39:05 +0000 (11:39 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 2 Oct 2021 10:39:05 +0000 (11:39 +0100)
commit66e6e0a3eda20be4da74317266f28a1e95005166
tree91e6d0001b36c310e05325ee45e629790163cc75
parentfffac188628941e2e083f20934aa7c700096d07f
bin/make-cert, bin/fix-cert-chain: Hack certificate chains for compatiblity.

Oh, this is a mess.

https://community.letsencrypt.org/t/openssl-client-compatibility-changes-for-let-s-encrypt-certificates/143816

Old versions of Android don't recognize the new Let's Encrypt issuer.
So LE deployed a kludge: their certificate chains include a reference to
their old issuer, which /is/ recognized by old Android versions.  But
there's a problem: this issuer /expired/ yesterday, and old versions of
OpenSSL and GnuTLS reject certificate bundles involving expired issuers,
even if (a) the expired certificate is in the cert store, not provided
by the server, and (b) there's a perfectly fine trust path which doesn't
involve the duff certificate.

Introduce a new script `fix-cert-chain' to generally tidy up certificate
chains by (a) deleting duplicate certificates and (b) removing
certificates from `bad' issuers.
bin/fix-cert-chain [new file with mode: 0755]
bin/make-cert