首页 > 解决方案 > 将客户端证书添加到 Spring Boot 应用程序

问题描述

我是 Java 开发的新手。我们有一个颁发证书的外部系统,所以我必须在我的应用程序中使用这些证书才能拨打电话。我不想将这些证书添加到密钥库中,但我想添加到我的 Spring Boot 应用程序中。

我们正在将此应用程序部署到 Kubernetes 集群中,或者有什么方法可以将这些证书添加到 Kubernetes 集群中,以便 JVM 选择它们。我们的技术栈是 Java 8、spring boot、spring integration、docker、kubernetes(GKE)。

标签: springspring-mvcspring-bootkubernetesssl-certificate

解决方案


你可以关注这样的事情

基本上,使用Kubernetes Secrets来存储您的证书。Java 了解密钥库,因此您必须将它们转换为该密钥库,但它本身可以存储在 Kubernetes 机密中。例如,您可以使用这样的东西来创建密钥库:

openssl pkcs12 -export -inkey $keyfile -in $crtfile -out $keystore.pkcs12 -password pass:$password
keytool -importkeystore -noprompt -srckeystore $keystore.pkcs12 -srcstoretype pkcs12 -destkeystore $keystore.jks -storepass $password -srcstorepass $password

像这样从 CA 包创建信任库:

csplit -z -f crt- service-ca.crt '/-----BEGIN CERTIFICATE-----/' '{*}'
for file in crt-*; do keytool -import -noprompt -keystore truststore.jks -file $file -storepass changeit -alias service-$file; done

推荐阅读