spring - 将客户端证书添加到 Spring Boot 应用程序
问题描述
我是 Java 开发的新手。我们有一个颁发证书的外部系统,所以我必须在我的应用程序中使用这些证书才能拨打电话。我不想将这些证书添加到密钥库中,但我想添加到我的 Spring Boot 应用程序中。
我们正在将此应用程序部署到 Kubernetes 集群中,或者有什么方法可以将这些证书添加到 Kubernetes 集群中,以便 JVM 选择它们。我们的技术栈是 Java 8、spring boot、spring integration、docker、kubernetes(GKE)。
解决方案
你可以关注这样的事情。
基本上,使用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
推荐阅读
- python - 瓶服务器路由到多个 html 页面
- java - Java 中的 AWS Lambda 处理程序,该程序包不可用
- c++ - 在排除 C++ 的 switch case 中使用范围
- azure-maps - Azure 地图集群
- mysql - MySQL子查询为每个组选择第一行
- excel - 如何为映射到不同驱动器的两个人编写文件路径
- mysql - MySQL SELECT QUERY 同一列不同的 where 语句
- jquery - 多级手风琴菜单
- scala - 使用 sbt-avrohugger 生成 scala avro 特定记录
- c++ - 数组在函数中作为参数传递并被访问,那么为什么从函数返回后数组的值会被修改?