Domino on Linux/Unix, Troubleshooting, Best Practices, Tips and more ...

alt

Daniel Nashed

eMudhra CA Key Compromise – how to remove the affected certs

Daniel Nashed – 22 October 2026 21:50:42

The certs might be in different trust stores. Not all of them are in Domino admin's responsibility.
And there are many more applications to look into.


Maybe someone wants to provide all the information for Java in a similar way?

I am not a big Java fan. But Java in Notes/Domino works exactly the same way than any other application, which contains Java.


If you have questions let me know. If you run into bigger problems, I can also help remotely if needed.


I am going to look into the Linux trust stores next. But I would assume the Linux community is good at patching root certificates.

On Linux an easy test would be using curl. Same for Windows if it uses the right trust store.



I hope this helps a bit.


-- Daniel




cacerts.pem


In Domino the CA cert is in the current cacerts.pem in notesdata.

The current Domino server does not use the cacerts.pem file by default, but checks the Domino directory.


It would be still a good idea to remove the affected certs.
The cacerts.pem file is just a simple file, which you can edit or on clients deploy a new version.
That might be tricky if you don't have Mavel client or other software.
You would need to trigger some Lotus Script code for example.


Java Trust Store


In case of Java applications you would need to also patch or replace the JVM trust store.

Meanwhile the trust store is in PKCS12 (.p12) format. Even it is still named cacert with no extension and looks like the old JVM key store.


Removing and adding certs has been documented in many places.


Domino Directory


The Domino directory could contain the root too. I have checked in my Domino Directory and I can't find it.

Since it is a quite new root, it might not be in Domino Directory.



Finding out which roots to remove


There are actually two root certs which need to be removed.


1. The Affected root cert

2. An older already retired CA from Comodo
  • I found the Comodo root in my Domino Diectory.
  • But it is not listed in my current cacerts.pem.
  • You might find it in older files. I got one but I did not check which version it belongs to. It was still on disk
     
I am listing the roots below for your convenience.

How to test your client


I wrote a small test button to check the cert. In my case I hit exactly this mixed situation where in one cacerts.pem the Comodo AAA Root cert was listed.
Removing the root made it worse, because then the Comodo cross cert was used.



Root certificates you should remove


1. The mainly affected cert



emSign ECC Root CA - G3

=======================

-----BEGIN CERTIFICATE-----

MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG

A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg

MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4

MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11

ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g

RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc

58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr

MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC

AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D

CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7

jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj

-----END CERTIFICATE-----


#0

Root       : /C=IN/OU=emSign PKI/O=eMudhra Technologies Limited/CN=emSign ECC Root CA - G3

Not Before : 2018.02.18 18:30:00

Not After  : 2043.02.18 18:30:00 (expires in 16.3 years)


Serial     : 3CF607A968700EDA8B84

Sign Alg   : ecdsa-with-SHA384

KeyUsage   : CrlSign

Extensions : BasicConstraints, CA, SelfSigned, KeyUsage

Key        : ECDSA NIST P-384

ASN1 OID   : secp384r1



SubjKeyId  : 7C:5D:02:84:13:D4:CC:8A:9B:81:CE:17:1C:2E:29:1E:9C:48:63:42

SKI-SHA1   : 7C:5D:02:84:13:D4:CC:8A:9B:81:CE:17:1C:2E:29:1E:9C:48:63:42

SKI-SHA256 : CF:8B:70:15:7D:F6:C6:25:1C:22:90:20:CD:9B:3D:87:6B:E0:A1:FA:73:11:CC:46:19:31:F9:1A:67:D1:C4:B8


MD5        : CE:0B:72:D1:9F:88:8E:D0:50:03:E8:E3:B8:8B:67:40

SHA1       : 30:43:FA:4F:F2:57:DC:A0:C3:80:EE:2E:58:EA:78:B2:3F:E6:BB:C1

SHA256     : 86:A1:EC:BA:08:9C:4A:8D:3B:BE:27:34:C6:12:BA:34:1D:81:3E:04:3C:F9:E8:A8:62:CD:5C:57:A3:6B:BE:6B





2. Cross sing CA

The root CA is used to cross sign the  "emSign ECC Root CA - G3"  CA for legacy clients.


Form the status of the cert you can see that it isn't a big loss to delete the root document as well.
And you have to remove it to be on the safe side! This is not optional.




Comodo AAA Services root

========================

-----BEGIN CERTIFICATE-----

MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS

R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg

TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw

MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl

c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV

BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC

ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG

C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs

i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW

Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH

Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK

Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f

BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl

cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz

LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm

7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz

Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z

8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C

12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==

-----END CERTIFICATE-----




#0

Root       : /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CNªA Certificate Services

Not Before : 2004.01.01 00:00:00

Not After  : 2028.12.31 23:59:59 (expires in 2.2 years)


Serial     : 01

Sign Alg   : sha1WithRSAEncryption

KeyUsage   : CrlSign

Extensions : BasicConstraints, CA, SelfSigned, KeyUsage

Key        : RSA 2048 bit


CRL        :
http://crl.comodoca.com/AAACertificateServices.crl, http://crl.comodo.net/AAACertificateServices.crl

SubjKeyId  : A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4

SKI-SHA1   : A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4

SKI-SHA256 : CA:34:12:34:2C:B2:FE:91:4A:E1:82:B3:2A:5C:49:4B:B9:82:E6:47:B5:69:C5:27:70:C4:84:51:5F:CC:5E:E2


MD5        : 49:79:04:B0:EB:87:19:AC:47:B0:BC:11:51:9B:74:D0

SHA1       : D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49

SHA256     : D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4





Domino Directory entry to delete


Image:eMudhra CA Key Compromise – how to remove the affected certs


Example Lotus Script code



Sub Click(Source As Button)

       
       Dim session As New NotesSession

       Dim req As NotesHTTPRequest

       Dim url As String

       Dim response As Variant

       
       url = "
https://dv-g3b-aaa-emudhra.we-have-a-problem.com/"
       
       On Error Goto RequestError

       
       Set req = session.CreateHTTPRequest()

       req.Timeoutsec = 15

       req.Maxredirects = 0

       req.Preferstrings = True

       
       LogMsg "Testing: " & url

       
       response = req.Get(url)

       
       LogMsg "TLS connection succeeded"

       LogMsg "HTTP status: " & Cstr(req.Responsecode) + " Data: " + response

       Exit Sub

       
RequestError:


       LogMsg "Request failed"

       LogMsg "Error: " & Cstr(Err)

       LogMsg "Description: " & Error$

       
       Exit Sub

       
End Sub



Links

    Archives


    • [HCL Domino]
    • [Domino on Linux]
    • [Nash!Com]
    • [Daniel Nashed]