将客户端证书添加到Spring Boot应用程序

时间:2018-10-18 19:05:59

标签: spring spring-mvc spring-boot kubernetes ssl-certificate

我是Java开发的新手。我们有一个发行证书证书的外部系统,因此我必须在应用程序中使用这些证书才能进行呼叫。我不想将这些证书添加到密钥库中,但是我想在我的spring boot应用程序中添加。

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

1 个答案:

答案 0 :(得分:1)

您可以遵循this之类的内容。

基本上,使用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