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

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

我是 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/

相关文章:

java - 我需要下载什么才能开始使用 Spring 框架开发应用程序?

java - ConversionService 在单元测试中不起作用( Spring 3.2)

java - 从 JAVA Spring 创建到 firebase 的 HTTP.PATCH 请求

java - 需要显示响应,它是 View 页面上的 html 代码

java - 组织.hibernate.DuplicateMappingException : Table contains physical column name [coverage_name] referred to by multiple physical column names:

java - SQL 合并与 Java 中的检查和插入/更新

java - Spring Boot和Spring Security配置关于404错误页面

mysql - 远程 Spring 启动应用程序仍然连接到我本地的 mysql

javascript - JQuery 无法将数据发布到 SPRING MVC Controller

java - 在 Spring 项目中禁用 Apache Commons 日志记录