On September 30 at 5:01 PM Moscow time, the root certificate of IdenTrust (DST Root CA X3) will expire. This certificate was used for cross-signing the root certificate of the Let's Encrypt certificate authority (ISRG Root X1), which is community-controlled and provides certificates free of charge to anyone who wishes. The cross-signing provided trust in Let's Encrypt certificates across a wide range of devices, operating systems, and browsers during the integration of Let's Encrypt's own root certificate into root certificate stores.
Initially, it was planned that after the expiration of DST Root CA X3, the Let's Encrypt project would transition to signing using only its own root certificate. However, this step would have resulted in a loss of compatibility with many older systems that had not added the Let's Encrypt root certificate to their stores. Specifically, approximately 30% of currently used Android devices do not have information about the Let's Encrypt root certificate, which has been supported only starting with Android 7.1.1, released at the end of 2016.
Let's Encrypt did not plan to enter into a new cross-signing agreement, as this imposes additional responsibilities on the parties involved, limits independence, and constrains compliance with all procedures and rules of another certificate authority. However, due to potential issues arising across numerous Android devices, the plan was revised. A new agreement was reached with the IdenTrust certificate authority, under which an alternative cross-signed intermediate certificate for Let's Encrypt was created. This cross-signing will be valid for three years and will maintain support for Android devices starting from version 2.3.6.
Nevertheless, the new intermediate certificate does not cover many other outdated systems. For example, after the expiration of the DST Root CA X3 certificate on September 30, Let's Encrypt certificates will cease to be recognized in already unsupported firmware and operating systems, where manual installation of the ISRG Root X1 certificate in the root certificate store will be required to establish trust in Let's Encrypt certificates. Issues will manifest in:
- OpenSSL up to version 1.0.2 inclusive (support for version 1.0.2 was discontinued in December 2019);
- NSS < 3.26;
- Java 8 < 8u141, Java 7 < 7u151;
- Windows < XP SP3;
- macOS < 10.12.1;
- iOS < 10 (iPhone < 5);
- Android < 2.3.6;
- Mozilla Firefox < 50;
- Ubuntu < 16.04;
- Debian < 8.
In the case of OpenSSL 1.0.2, the problem is caused by a bug that prevent correctly processing cross-signed certificates when one of the root certificates involved in the signature is outdated, even when other valid trust chains remain. The issue first arose last year after the expiration of the AddTrust certificate used for cross-signing by Sectigo (Comodo) root certificates. The crux of the problem is that OpenSSL treated the certificate as a linear chain, whereas according to RFC 4158, the certificate can represent a directed distributed cyclic graph with multiple trust anchors that need to be considered.
Users of older distributions tied to OpenSSL 1.0.2 are offered three workaround options to resolve the issue:
- Manually remove the root certificate IdenTrust DST Root CA X3 and install the standalone (not cross-signed) root certificate ISRG Root X1.
- When running the openssl verify and s_client commands, the '—trusted_first' option can be specified.
- Use a server certificate signed by the standalone root certificate ISRG Root X1, which does not have cross-signing. This method will result in loss of compatibility with older Android clients.
Additionally, it's noteworthy that the Let’s Encrypt project has surpassed two billion generated certificates. The one billion milestone was reached last February. Daily, 2.2-2.4 million new certificates are generated. The number of active certificates is 192 million (the certificate is valid for three months) and covers approximately 260 million domains. domains (a year ago, 195 million domains were covered, two years ago — 150 million, three years ago — 60 million). According to Firefox Telemetry statistics, the global share of page requests over HTTPS is 82% (one year ago — 81%, two years ago — 77%, three years ago — 69%, four years ago — 58%).
Source: opennet.ru
