3434import java .security .PrivateKey ;
3535import java .security .Security ;
3636import java .security .UnrecoverableKeyException ;
37- import java .security .cert .Certificate ;
3837import java .security .cert .CertificateException ;
3938import java .security .cert .CertificateFactory ;
4039import java .security .cert .X509Certificate ;
4140import java .security .spec .InvalidKeySpecException ;
4241import java .security .spec .PKCS8EncodedKeySpec ;
4342import java .security .spec .RSAPrivateCrtKeySpec ;
43+ import java .util .Collection ;
4444import javax .net .ssl .KeyManager ;
4545import javax .net .ssl .KeyManagerFactory ;
4646import org .apache .commons .codec .binary .Base64 ;
@@ -145,7 +145,9 @@ public static KeyStore createKeyStore(
145145 throws IOException , CertificateException , NoSuchAlgorithmException , InvalidKeySpecException ,
146146 KeyStoreException {
147147 CertificateFactory certFactory = CertificateFactory .getInstance ("X509" );
148- X509Certificate cert = (X509Certificate ) certFactory .generateCertificate (certInputStream );
148+ Collection <X509Certificate > certs =
149+ (Collection <X509Certificate >) certFactory .generateCertificates (certInputStream );
150+ X509Certificate [] certsArray = certs .toArray (new X509Certificate [0 ]);
149151
150152 PrivateKey privateKey = loadKey (keyInputStream , clientKeyAlgo );
151153
@@ -156,8 +158,8 @@ public static KeyStore createKeyStore(
156158 loadDefaultKeyStoreFile (keyStore , keyStorePassphrase );
157159 }
158160
159- String alias = cert .getSubjectX500Principal ().getName ();
160- keyStore .setKeyEntry (alias , privateKey , clientKeyPassphrase , new Certificate [] { cert } );
161+ String alias = certsArray [ 0 ] .getSubjectX500Principal ().getName ();
162+ keyStore .setKeyEntry (alias , privateKey , clientKeyPassphrase , certsArray );
161163
162164 return keyStore ;
163165 }
0 commit comments