34
34
import java .security .PrivateKey ;
35
35
import java .security .Security ;
36
36
import java .security .UnrecoverableKeyException ;
37
- import java .security .cert .Certificate ;
38
37
import java .security .cert .CertificateException ;
39
38
import java .security .cert .CertificateFactory ;
40
39
import java .security .cert .X509Certificate ;
41
40
import java .security .spec .InvalidKeySpecException ;
42
41
import java .security .spec .PKCS8EncodedKeySpec ;
43
42
import java .security .spec .RSAPrivateCrtKeySpec ;
43
+ import java .util .Collection ;
44
44
import javax .net .ssl .KeyManager ;
45
45
import javax .net .ssl .KeyManagerFactory ;
46
46
import org .apache .commons .codec .binary .Base64 ;
@@ -145,7 +145,9 @@ public static KeyStore createKeyStore(
145
145
throws IOException , CertificateException , NoSuchAlgorithmException , InvalidKeySpecException ,
146
146
KeyStoreException {
147
147
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 ]);
149
151
150
152
PrivateKey privateKey = loadKey (keyInputStream , clientKeyAlgo );
151
153
@@ -156,8 +158,8 @@ public static KeyStore createKeyStore(
156
158
loadDefaultKeyStoreFile (keyStore , keyStorePassphrase );
157
159
}
158
160
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 );
161
163
162
164
return keyStore ;
163
165
}
0 commit comments