【发布时间】:2018-12-28 01:10:22
【问题描述】:
我开发了一个基于 Spring Boot 的 REST API 服务,并通过使用自签名证书密钥库(在本地测试)在其上启用了 https,它运行良好。
server.ssl.key-store=classpath:certs/keystore.jks
server.ssl.key-store-password=keystore
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=tomcat
现在,我想打包一个 docker 镜像并将该服务部署在 Kubernetes 集群中。我知道我可以将服务公开为 NodePort 并从外部访问它。
我想知道的是,我怀疑我在本地机器上生成的自签名证书在部署到 kubernetes 集群时是否可以工作。我研究并找到了一些使用 kubernetes 入口、kubernetes 机密等的解决方案。我很困惑什么是最好的方法,这样我就可以通过 https 访问在 kubernetes 中运行的服务。我需要对我的 REST API 代码进行哪些更改?
更新说明:虽然我已将自签名证书用于测试目的,但我可以从我的公司获得 CA 签名证书并将其用于生产。我的问题更多的是,对于已经使用基于 SSL/TLS 的连接的 REST API 服务,在 kubernetes 集群中部署和访问证书的更好方法是什么,例如:在应用程序本身中打包,使用秘密,或废弃应用程序的 SSL 配置并改用 Ingres 等。希望我的问题有意义:)
感谢您的任何建议。
【问题讨论】:
-
你试过letsencrypt.org 吗?
-
是的,我已经调查过了。但是,我的公司有自己的 CA。我的问题更多的是,如果我有一个签名的证书,我应该如何在证书的上下文中部署和访问 kubernetes 中现有的 https REST 服务。
标签: docker spring-boot kubernetes