Index: java/org/apache/tomcat/util/net/jsse/JSSEUtil.java =================================================================== --- java/org/apache/tomcat/util/net/jsse/JSSEUtil.java (revision 1809234) +++ java/org/apache/tomcat/util/net/jsse/JSSEUtil.java (working copy) @@ -241,7 +241,13 @@ Key k = ks.getKey(keyAlias, keyPassArray); if (k != null && "PKCS#8".equalsIgnoreCase(k.getFormat())) { // Switch to in-memory key store - ksUsed = KeyStore.getInstance("JKS"); + String provider = certificate.getCertificateKeystoreProvider(); + if (provider == null) { + ksUsed = KeyStore.getInstance(certificate.getCertificateKeystoreType()); + } else { + ksUsed = KeyStore.getInstance(certificate.getCertificateKeystoreType(), + provider); + } ksUsed.load(null, null); ksUsed.setKeyEntry(keyAlias, k, keyPassArray, ks.getCertificateChain(keyAlias)); }