Getting an error message when trying to connect a Java client application to a C++ Server using SSL.
The error message the Java client application displays is:
java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunjSSE, class sun.security.ssl.SSLContextImpl$DefaultSSLContext).
I used openssl 3 to create the root, server and client certificates which I’ve copied below. Root certificate is self-signed. This is all for testing in a development environment. The signature algorithm for the client certificate is sha256withRSAEncryption
Java application uses the Java OpenJDK 11. Operating system is Red Hat 9.1.
Here’s a list of providers and their order from my java.security file: Note SunRsaSign is prior to SunJSSE.
security.provider.1=SUN
security.provider.2=SunRsaSign
security.provider.3=SunEC
security.provider.4=SunJSSE
security.provider.5=SunJCE
security.provider.6=SunJGSS
security.provider.7=SunSASL
security.provider.8=XMLDSig
security.provider.9=SunPCSC
security.provider.10=JdkLDAP
security.provider.11=JdkSASL
security.provider.12=SunPKCS11
#security.provider.1=SunPKCS11 ${java.home}/lib/security/nss.cfg
Any thoughts on what could be causing this error?
I’ve searched stackoverflow and everywhere else looking for why this error is occurring. I saw some references to SunjSSE does not support sha256withRSAEncryption, but SunRsaSign does support sha256withRSAEncryption. I also saw references that the order of providers in the java.security file is important. I also noticed that the error message states the provider is SunjSSE but the provider name in java.security is SunJSSE. Not sure if the provider names are case sensitive?
Not sure what other information that I could provide that would help figure this out? I’ll be glad to post anything that’s needed.
Below is the test client certificate that I’m using to connect to the server:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
36:3a:28:e1:6d:d6:2f:9b:8f:5c:c3:bf:61:68:87:91:20:ee:d1:5f
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, ST = Florida, L = Miami, O = MyCompany, CN = MyCA
Validity
Not Before: May 5 19:01:43 2024 GMT
Not After : Apr 30 19:01:43 2044 GMT
Subject: C = US, ST = Florida, L = Miami, O = MyCompany, CN = MyClient
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:c5:49:04:16:64:8a:41:2a:1c:03:c2:6b:90:04:
13:c1:a1:3d:bf:83:10:63:60:88:f8:1f:83:49:fe:
93:42:5c:8b:05:a3:e2:d5:3d:9d:24:41:a7:2b:82:
60:0b:51:8f:43:ac:b9:ac:cf:7d:45:6a:8c:bc:2b:
fe:6d:38:b9:38:16:5d:23:54:fc:83:b4:8b:6d:37:
1e:39:07:ab:a6:80:f5:78:33:30:cf:de:1e:0e:b0:
a0:90:98:e2:0c:9e:52:76:96:f3:b4:48:ce:4c:02:
fd:a4:dd:d9:cf:bf:2e:e9:b3:07:54:8d:d6:d1:83:
65:ba:96:13:6e:b9:0d:0e:50:11:c4:85:53:9e:a7:
87:de:47:c4:95:10:d0:5d:59:a4:1a:91:0c:96:eb:
90:67:07:91:90:36:d0:84:83:c4:1b:76:1c:5b:bc:
c1:db:4e:2a:8e:c0:cd:57:90:b8:50:43:36:88:e9:
f4:83:37:70:a4:bf:9b:24:78:09:89:fb:25:86:cf:
1a:70:4f:cb:6c:ef:83:b1:ad:07:cc:96:d8:84:f8:
f2:45:79:32:81:56:20:b2:92:b7:e5:c8:cc:86:ad:
f1:68:6a:06:f2:0d:8e:af:71:54:5f:cc:fd:53:f8:
53:e6:da:3f:b1:ec:43:19:dd:01:c4:78:86:11:70:
09:59
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Subject Key Identifier:
8A:41:B1:DF:3A:EC:B8:77:FE:C1:09:27:C5:55:CF:DE:AE:A0:06:28
X509v3 Authority Key Identifier:
3A:F0:3E:1C:D2:7B:44:15:F6:EA:8B:ED:2B:9B:94:3C:66:7B:AE:F4
Signature Algorithm: sha256WithRSAEncryption
Signature Value:
50:a3:ea:35:19:bc:5e:52:2b:19:1a:34:e4:a9:a6:4f:13:bf:
19:5f:37:59:34:3f:7f:81:e3:06:bd:56:38:3f:50:cb:c0:0a:
26:b1:59:72:f5:33:bc:38:ae:4c:6a:ef:c7:87:ac:66:bb:c3:
fb:08:13:79:9b:c0:70:6f:85:f8:1f:69:6d:fe:2d:b3:15:5b:
9a:00:bc:f0:16:d4:09:77:9a:28:35:20:f8:a9:ca:11:3c:cb:
7e:d4:50:8c:04:f8:f7:07:f3:77:90:52:73:89:3a:9c:1a:91:
44:ce:b5:cc:c8:8b:ba:ef:be:4e:e8:fd:35:97:59:ce:49:3a:
2f:66:95:34:fd:43:cb:e0:a7:79:fe:94:ab:e8:3a:e6:be:37:
86:0b:5f:a3:51:0b:16:aa:ac:cf:0f:06:f9:71:20:ff:de:dd:
13:60:1c:52:a3:68:3a:42:b1:8d:23:b4:06:81:dd:88:01:17:
ff:b5:22:1b:6d:d3:33:51:4d:20:7b:cd:e5:7e:ee:ac:71:d8:
cb:10:66:db:ea:1f:a1:74:cf:38:1c:f2:98:6a:90:79:d9:e9:
0c:37:74:1f:fb:1d:27:d9:ad:12:04:7c:94:70:00:e5:53:0f:
81:4a:13:f6:26:e2:b6:00:77:c5:54:1b:c8:b1:4d:bf:6b:26:
dd:02:8d:74
-----BEGIN CERTIFICATE-----
MIIDmzCCAoOgAwIBAgIUNjoo4W3WL5uPXMO/YWiHkSDu0V8wDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCk5ldyBKZXJzZXkxFjAUBgNVBAcM
DUxhd3JlbmNldmlsbGUxETAPBgNVBAoMCFNpcml1c1hNMQ8wDQYDVQQDDAZBQkMg
Q0EwHhcNMjQwNTA1MTkwMTQzWhcNNDQwNDMwMTkwMTQzWjBiMQswCQYDVQQGEwJV
UzETMBEGA1UECAwKTmV3IEplcnNleTEWMBQGA1UEBwwNTGF3cmVuY2V2aWxsZTER
MA8GA1UECgwIU2lyaXVzWE0xEzARBgNVBAMMCkFCQyBDbGllbnQwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFSQQWZIpBKhwDwmuQBBPBoT2/gxBjYIj4
H4NJ/pNCXIsFo+LVPZ0kQacrgmALUY9DrLmsz31Faoy8K/5tOLk4Fl0jVPyDtItt
Nx45B6umgPV4MzDP3h4OsKCQmOIMnlJ2lvO0SM5MAv2k3dnPvy7pswdUjdbRg2W6
lhNuuQ0OUBHEhVOep4feR8SVENBdWaQakQyW65BnB5GQNtCEg8QbdhxbvMHbTiqO
wM1XkLhQQzaI6fSDN3Ckv5skeAmJ+yWGzxpwT8ts74OxrQfMltiE+PJFeTKBViCy
krflyMyGrfFoagbyDY6vcVRfzP1T+FPm2j+x7EMZ3QHEeIYRcAlZAgMBAAGjTTBL
MAkGA1UdEwQCMAAwHQYDVR0OBBYEFIpBsd867Lh3/sEJJ8VVz96uoAYoMB8GA1Ud
IwQYMBaAFDrwPhzSe0QV9uqL7SublDxme670MA0GCSqGSIb3DQEBCwUAA4IBAQBQ
o+o1GbxeUisZGjTkqaZPE78ZXzdZND9/geMGvVY4P1DLwAomsVly9TO8OK5Mau/H
h6xmu8P7CBN5m8Bwb4X4H2lt/i2zFVuaALzwFtQJd5ooNSD4qcoRPMt+1FCMBPj3
B/N3kFJziTqcGpFEzrXMyIu6775O6P01l1nOSTovZpU0/UPL4Kd5/pSr6DrmvjeG
C1+jUQsWqqzPDwb5cSD/3t0TYBxSo2g6QrGNI7QGgd2IARf/tSIbbdMzUU0ge83l
fu6scdjLEGbb6h+hdM84HPKYapB52ekMN3Qf+x0n2a0SBHyUcADlUw+BShP2JuK2
AHfFVBvIsU2/aybdAo10
-----END CERTIFICATE-----
Here is the Server Certificate:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
36:3a:28:e1:6d:d6:2f:9b:8f:5c:c3:bf:61:68:87:91:20:ee:d1:5e
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, ST = Florida, L = Miami, O = MyCompany, CN = MyCA
Validity
Not Before: May 5 18:59:32 2024 GMT
Not After : Apr 30 18:59:32 2044 GMT
Subject: C = US, ST = Florida, L = Miami, O = MyCompany, CN = MyServer
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:9a:41:bf:bb:24:a4:20:64:af:14:86:4d:e0:94:
e5:d0:71:bd:3e:fa:60:b9:8e:be:32:af:ca:0d:42:
d4:6b:6a:45:cb:a4:e2:2d:19:69:cd:55:37:7f:10:
a3:32:c2:eb:30:f5:b9:26:47:a3:a7:bf:32:7e:38:
fd:dc:29:15:4f:ca:05:e2:c8:2f:2e:98:24:65:54:
8b:b8:a4:1b:86:61:63:d3:a1:a6:88:c1:55:90:de:
33:8e:c9:74:65:71:60:60:18:8d:c8:45:70:f8:74:
12:70:3c:75:fb:6a:e8:d2:49:ad:e3:e4:b6:7e:36:
12:4e:cd:08:38:68:f1:a3:99:8f:c8:93:0f:bd:9e:
1c:b7:ee:c6:15:a6:2b:f0:3f:36:80:79:03:dd:87:
db:73:53:13:5c:6e:17:85:7f:21:f3:0f:b1:55:93:
c9:37:c0:15:26:93:34:d5:1f:c7:ec:88:2b:61:32:
4e:bc:ee:b4:38:ba:84:bf:b5:c1:82:57:d3:7a:7c:
92:44:c7:d7:68:62:64:f1:3a:c8:26:c0:32:60:3c:
85:49:fd:f9:b7:04:3b:ac:6e:4d:c4:5e:a8:a0:15:
66:65:5e:61:22:89:3c:f5:bb:ff:05:34:0f:9d:d9:
a5:87:df:8f:68:5a:c7:00:19:f2:ba:b3:b3:bf:b8:
9c:23
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
01:C6:18:F6:FD:5C:BA:9C:CA:CA:B7:40:B2:BB:AF:64:0A:D9:52:F3
X509v3 Authority Key Identifier:
3A:F0:3E:1C:D2:7B:44:15:F6:EA:8B:ED:2B:9B:94:3C:66:7B:AE:F4
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage:
Certificate Sign, CRL Sign
Signature Algorithm: sha256WithRSAEncryption
Signature Value:
92:e0:51:a7:f9:94:d8:53:89:1c:61:c1:41:64:70:67:f0:10:
21:1c:ac:70:24:db:d0:31:73:27:20:da:c0:89:12:6d:a5:17:
3f:e4:a8:e4:6e:fb:7a:25:06:a1:86:12:31:9e:bd:89:7a:4b:
76:78:48:ca:f2:f2:4c:2e:e5:84:14:17:c4:80:d3:eb:ca:a4:
06:83:e3:13:ee:13:5a:bb:bf:d3:2f:35:02:03:50:c8:c1:c0:
28:6e:87:6f:65:10:87:a5:98:53:d8:a8:7a:0b:61:7e:57:af:
1a:1d:c6:6d:50:d1:15:76:5c:49:17:34:62:58:e4:45:88:57:
45:86:1a:bd:07:a7:6f:74:aa:de:d6:62:ef:51:b2:5b:7c:e8:
32:2a:76:4f:0c:98:ee:50:bd:44:a3:9d:20:20:bb:dd:57:86:
7d:4a:e4:9f:d6:3a:0a:dc:87:b5:e8:f9:35:4f:cf:46:6f:22:
22:de:83:ab:38:90:39:95:f8:b5:3b:82:02:61:46:0c:d5:d6:
13:2d:1f:4b:f7:e9:67:1e:0e:fc:8c:21:0e:68:98:3f:c0:e1:
05:25:e7:fc:f4:c5:36:fa:fa:22:01:dc:e6:b3:4f:df:5a:46:
1d:2a:0f:f2:d7:bf:42:1b:eb:45:16:26:fa:19:a9:f8:6c:f2:
43:db:10:ab
-----BEGIN CERTIFICATE-----
MIIDrjCCApagAwIBAgIUNjoo4W3WL5uPXMO/YWiHkSDu0V4wDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCk5ldyBKZXJzZXkxFjAUBgNVBAcM
DUxhd3JlbmNldmlsbGUxETAPBgNVBAoMCFNpcml1c1hNMQ8wDQYDVQQDDAZBQkMg
Q0EwHhcNMjQwNTA1MTg1OTMyWhcNNDQwNDMwMTg1OTMyWjBiMQswCQYDVQQGEwJV
UzETMBEGA1UECAwKTmV3IEplcnNleTEWMBQGA1UEBwwNTGF3cmVuY2V2aWxsZTER
MA8GA1UECgwIU2lyaXVzWE0xEzARBgNVBAMMCkFCQyBTZXJ2ZXIwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCaQb+7JKQgZK8Uhk3glOXQcb0++mC5jr4y
r8oNQtRrakXLpOItGWnNVTd/EKMywusw9bkmR6OnvzJ+OP3cKRVPygXiyC8umCRl
VIu4pBuGYWPToaaIwVWQ3jOOyXRlcWBgGI3IRXD4dBJwPHX7aujSSa3j5LZ+NhJO
zQg4aPGjmY/Ikw+9nhy37sYVpivwPzaAeQPdh9tzUxNcbheFfyHzD7FVk8k3wBUm
kzTVH8fsiCthMk687rQ4uoS/tcGCV9N6fJJEx9doYmTxOsgmwDJgPIVJ/fm3BDus
bk3EXqigFWZlXmEiiTz1u/8FNA+d2aWH349oWscAGfK6s7O/uJwjAgMBAAGjYDBe
MB0GA1UdDgQWBBQBxhj2/Vy6nMrKt0Cyu69kCtlS8zAfBgNVHSMEGDAWgBQ68D4c
0ntEFfbqi+0rm5Q8Znuu9DAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAN
BgkqhkiG9w0BAQsFAAOCAQEAkuBRp/mU2FOJHGHBQWRwZ/AQIRyscCTb0DFzJyDa
wIkSbaUXP+So5G77eiUGoYYSMZ69iXpLdnhIyvLyTC7lhBQXxIDT68qkBoPjE+4T
Wru/0y81AgNQyMHAKG6Hb2UQh6WYU9ioegthflevGh3GbVDRFXZcSRc0YljkRYhX
RYYavQenb3Sq3tZi71GyW3zoMip2TwyY7lC9RKOdICC73VeGfUrkn9Y6CtyHtej5
NU/PRm8iIt6DqziQOZX4tTuCAmFGDNXWEy0fS/fpZx4O/IwhDmiYP8DhBSXn/PTF
Nvr6IgHc5rNP31pGHSoP8te/QhvrRRYm+hmp+GzyQ9sQqw==
-----END CERTIFICATE-----
Lastly, here is my self-signed CA certificate in case this helps:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
66:6b:c1:c7:d4:53:96:c1:ad:d5:20:bc:5f:4f:c3:bf:63:87:46:f1
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, ST = Florida, L = Miami, O = MyCompany, CN = MyCA
Validity
Not Before: May 5 18:52:23 2024 GMT
Not After : Apr 30 18:52:23 2044 GMT
Subject: C = US, ST = Florida, L = Miami, O = MyCompany, CN = MyCA
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:a3:2a:52:4c:2c:fa:56:a7:8e:79:07:43:b0:c6:
a9:f9:f2:ad:71:c6:fb:9d:ee:37:3e:08:e9:e9:ce:
5b:00:c9:76:f4:d6:2b:d7:ff:61:70:05:cf:5e:ee:
42:dc:76:bc:5a:b5:df:86:04:4a:0d:45:c0:c5:f4:
2a:cb:8b:22:35:66:80:be:89:89:f7:a7:42:76:55:
4e:9e:3b:69:37:df:a3:d3:d2:5d:92:a2:ca:9d:5b:
1a:06:2a:d6:d0:49:d6:22:c7:64:db:42:88:6e:9f:
92:74:58:e1:ce:d0:fb:25:40:20:9a:a7:50:10:c2:
b4:4c:5a:d8:d5:ec:71:06:32:6f:1c:98:70:24:b5:
4f:f8:ef:1c:79:9b:0c:33:61:9f:87:3c:76:39:65:
4e:fe:cd:fd:6c:39:4e:3a:fe:a4:d9:ca:25:f1:92:
52:c1:fa:6a:3f:1a:67:d3:4b:2c:ab:90:6a:64:e9:
69:93:ec:55:6d:81:3f:c4:b0:b9:a8:d8:42:c0:f3:
5a:1b:df:fc:1a:3f:41:fb:bf:8c:c5:9c:32:72:c3:
e2:32:e8:32:5d:58:a3:ec:b9:22:7f:b2:6d:dc:ff:
19:f3:47:98:fb:3b:31:48:05:ce:47:86:88:d0:f7:
bf:27:9e:2c:82:41:46:58:e6:b6:44:f7:24:d0:16:
e4:b5
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
3A:F0:3E:1C:D2:7B:44:15:F6:EA:8B:ED:2B:9B:94:3C:66:7B:AE:F4
X509v3 Authority Key Identifier:
3A:F0:3E:1C:D2:7B:44:15:F6:EA:8B:ED:2B:9B:94:3C:66:7B:AE:F4
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Key Usage:
Certificate Sign, CRL Sign
Signature Algorithm: sha256WithRSAEncryption
Signature Value:
4e:54:b1:a8:ac:27:06:c5:0c:d5:c1:5c:a5:9f:28:a4:5d:b5:
1b:6f:32:4b:40:25:49:cc:e5:0c:37:87:77:cd:6f:65:02:15:
79:5a:1d:4c:90:eb:cc:af:87:b3:c1:f7:e1:e5:9d:e2:8d:59:
03:7e:75:e7:88:67:0f:ec:6a:44:70:30:e2:df:3e:e0:d0:97:
fa:37:57:7f:47:23:0b:e1:34:1a:d9:14:e2:fe:99:07:15:67:
cc:e9:5a:19:9f:50:ae:23:40:7f:32:58:ef:db:fc:1f:6e:57:
b8:b3:4e:6e:7e:85:89:a6:10:ac:69:e8:0e:53:16:f5:63:7f:
78:a5:28:c5:7c:84:ce:35:f8:96:5b:df:32:1a:df:a9:9e:a6:
92:3a:21:69:1e:fa:6e:6d:5f:99:5e:57:ed:4c:7c:85:f7:6c:
ea:bf:09:d8:04:7e:4a:c3:3d:16:3c:e6:3f:8d:c7:5b:97:be:
46:c7:6d:f4:d5:bc:44:6a:45:0f:71:9b:96:21:19:1c:7c:ff:
55:5c:8f:a0:36:3f:66:d9:05:c2:b3:9d:3f:af:53:9c:b0:c2:
d1:6e:ce:d1:37:02:56:ec:53:15:97:d0:cc:93:2c:fd:63:b0:
d2:1f:fd:62:f8:74:8a:43:90:c5:f7:27:e5:8f:2d:79:38:64:
e1:be:27:d7
-----BEGIN CERTIFICATE-----
MIIDqjCCApKgAwIBAgIUZmvBx9RTlsGt1SC8X0/Dv2OHRvEwDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCk5ldyBKZXJzZXkxFjAUBgNVBAcM
DUxhd3JlbmNldmlsbGUxETAPBgNVBAoMCFNpcml1c1hNMQ8wDQYDVQQDDAZBQkMg
Q0EwHhcNMjQwNTA1MTg1MjIzWhcNNDQwNDMwMTg1MjIzWjBeMQswCQYDVQQGEwJV
UzETMBEGA1UECAwKTmV3IEplcnNleTEWMBQGA1UEBwwNTGF3cmVuY2V2aWxsZTER
MA8GA1UECgwIU2lyaXVzWE0xDzANBgNVBAMMBkFCQyBDQTCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAKMqUkws+lanjnkHQ7DGqfnyrXHG+53uNz4I6enO
WwDJdvTWK9f/YXAFz17uQtx2vFq134YESg1FwMX0KsuLIjVmgL6JifenQnZVTp47
aTffo9PSXZKiyp1bGgYq1tBJ1iLHZNtCiG6fknRY4c7Q+yVAIJqnUBDCtExa2NXs
cQYybxyYcCS1T/jvHHmbDDNhn4c8djllTv7N/Ww5Tjr+pNnKJfGSUsH6aj8aZ9NL
LKuQamTpaZPsVW2BP8SwuajYQsDzWhvf/Bo/Qfu/jMWcMnLD4jLoMl1Yo+y5In+y
bdz/GfNHmPs7MUgFzkeGiND3vyeeLIJBRljmtkT3JNAW5LUCAwEAAaNgMF4wHQYD
VR0OBBYEFDrwPhzSe0QV9uqL7SublDxme670MB8GA1UdIwQYMBaAFDrwPhzSe0QV
9uqL7SublDxme670MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqG
SIb3DQEBCwUAA4IBAQBOVLGorCcGxQzVwVylnyikXbUbbzJLQCVJzOUMN4d3zW9l
AhV5Wh1MkOvMr4ezwffh5Z3ijVkDfnXniGcP7GpEcDDi3z7g0Jf6N1d/RyML4TQa
2RTi/pkHFWfM6VoZn1CuI0B/Mljv2/wfble4s05ufoWJphCsaegOUxb1Y394pSjF
fITONfiWW98yGt+pnqaSOiFpHvpubV+ZXlftTHyF92zqvwnYBH5Kwz0WPOY/jcdb
l75Gx2301bxEakUPcZuWIRkcfP9VXI+gNj9m2QXCs50/r1OcsMLRbs7RNwJW7FMV
l9DMkyz9Y7DSH/1i+HSKQ5DF9yfljy15OGThvifX
-----END CERTIFICATE-----