Skip to content

Commit 264c094

Browse files
committed
support client certificate chain
Signed-off-by: Jizhong Jiang <[email protected]>
1 parent 3c5cd3d commit 264c094

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

util/src/main/java/io/kubernetes/client/util/SSLUtils.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@
3434
import java.security.PrivateKey;
3535
import java.security.Security;
3636
import java.security.UnrecoverableKeyException;
37-
import java.security.cert.Certificate;
3837
import java.security.cert.CertificateException;
3938
import java.security.cert.CertificateFactory;
4039
import java.security.cert.X509Certificate;
4140
import java.security.spec.InvalidKeySpecException;
4241
import java.security.spec.PKCS8EncodedKeySpec;
4342
import java.security.spec.RSAPrivateCrtKeySpec;
43+
import java.util.Collection;
4444
import javax.net.ssl.KeyManager;
4545
import javax.net.ssl.KeyManagerFactory;
4646
import 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

Comments
 (0)