How to replace MD-5 signed CAcert Class 1 root with the SHA256 signed CAcert Class 1 root
The main browsers do not accept certificates (including root self-signed ones) signed using the MD-5 algorithm, after 20161231. The reason is, that the MD-5 algorithm is no more considered as the safe one nowadays. This is also the reason for replacing it with the SHA256 signed CAcert root certificate.
The SHA256 signed CAcert root certificate is quite equal to the MD-5 signed CAcert root one, as regards technical issues. The main differences between the SHA256 signed Class 1 root and the MD-5 signed Class 1 root are as follows:
- of course the signing algorithm: SHA256 instead of MD-5,
- serial number: 00000F instead of 000000,
SHA-1 fingerprint: dd:fc:da:54:1e:75:77:ad:dc:a8:7e:88:27:a9:8a:50:60:32:52:a5 (instead of 13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33).
In brief: the replacement is possible, simple, and makes no problem both to OSes and to browsers. The process of the replacement is totally straightforward as 1-2-3:
- Download and save the SHA256 signed CAcert Class 1 root file. Select the format your system or browser can use.
- Import the downloaded root into your OS or browser (e. g. use the system utility, or embedded Certificate Manager respectively).
- Delete the former MD-5 signed CAcert Class 1 root. Check its serial number 000000 before.
It has been proven that the replace procedure makes no harm. There is no need to change or reinstall either the Class 3 CAcert root or any CAcert issued certificate, as those already are SHA256 signed. Systems (Linux, Windows) and browsers (Firefox) are still able to create certificate chains needed.
The procedure, if roots were installed by the MSI package for MS Windows
If you have installed CAcert roots using the MSI package, you have to deinstall them first using the same package CAcert_Root_Certificates.msi (or the new one, CAcert_Root_Certificates_256.msi). If you don't remember the procedure of the former installation, run the package (with _256 in its name). if it shows three standard possibilities (buttons Change, Repair, Uninstall), press Uninstall. If the error dialog box appears (with no text, buttons Yes/No), press Yes.
You can also manually uninstall the root certificate, then search for the following Registry key:
and if it exists, delete it.
After uninstallation is done, run the new package CAcert_Root_Certificates_256.msi, confirm the license agreement, and install the roots. Again, if the dialog box "Error" appears, press Yes.
The procedure for the Kleopatra in Linux
The Kleopatra program deletes the root certificate with the whole certificate string. Thus, it does not allow the direct substitution of the old root certificate. You need to follow this procedure:
Export all the certificates, issued to you, to files of type <hash>.pem
- Delete the CAcert root certificate (MD-5 signed). That way you also delete all the certificate string, i. e. the CAcert Class3 certificate and all your certificates (you have backups from the step 1).
- Import the CAcert root certificate CAcert Class1 SHA256 signed with serial number 0F (root_256.crt), and set it trustworthy.
- Import the CAcert intermediate Class3 certificate (class3.crt).
- Import all the certificates issued to you, which you have exported in the step 1.