I use this method to register a client certificate in a server certificate.
public boolean linkToServerCertificate(Party server) throws KeyStoreException { if (keyAlias.equals(server.keyAlias)) { throw new IllegalArgumentException("The alias of client and server must be different!"); } keystore.setCertificateEntry(server.keyAlias, server.getAliasCert()); Certificate certificate = keystore.getCertificate(keyAlias); server.keystore.setCertificateEntry(keyAlias, certificate); return true; }
After rebooting AS, I get this message:

Having the environment variable JAVA_OPTS = "- Djavax.net.debug = ssl", I get this informative:
*** ServerHelloDone https-jsse-nio-8443-exec-7, WRITE: TLSv1.2 Handshake, length = 1522 https-jsse-nio-8443-exec-8, READ: TLSv1.2 Handshake, length = 7 *** Certificate chain <Empty> *** https-jsse-nio-8443-exec-8, fatal error: 42: null cert chain javax.net.ssl.SSLHandshakeException: null cert chain %% Invalidated: [Session-4, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256] https-jsse-nio-8443-exec-8, SEND TLSv1.2 ALERT: fatal, description = bad_certificate
Thus, the certificate certificate chain is empty
But checking the certificate on the client, indicating that there is a chain of certificates.

I am confused why the certificate chain is not migrated to the server?
source share