我是 Java 开发的新手。我们有一个颁发证书的外部系统,所以我必须在我的应用程序中使用这些证书才能调用电话。我不想将这些证书添加到 keystore 中,但我想添加到我的 Spring Boot 应用程序中。
我们正在将此应用程序部署到 Kubernetes 集群中,或者有什么方法可以将这些证书添加到 Kubernetes 集群中,以便 JVM 选择它们。我们的技术栈是 Java 8、spring boot、spring integration、docker、kubernetes(GKE)。
最佳答案
您可以关注 this 之类的内容.
基本上,使用 Kubernetes Secrets存储您的证书。 Java 了解 keystore ,因此您必须将它们转换为该 keystore ,但它本身可以存储在 Kubernetes secret 中。例如,您可以使用这样的东西来创建 keystore :
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
关于spring - 将客户端证书添加到 Spring Boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52880907/