我正在努力实现 LetsEncrypt
在 Spring 启动应用程序。我使用docker进行部署,在本地创建一个docker映像,将其推送到docker hub,然后在ubuntu中使用这个docker命令运行它 docker run -d -p 80:80 myapp:latest
这只是 http
所以现在我想用 LetsEncrypt
但我不知道怎么做。任何帮助或对某些链接的任何方向将不胜感激。谢谢
我正在努力实现 LetsEncrypt
在 Spring 启动应用程序。我使用docker进行部署,在本地创建一个docker映像,将其推送到docker hub,然后在ubuntu中使用这个docker命令运行它 docker run -d -p 80:80 myapp:latest
这只是 http
所以现在我想用 LetsEncrypt
但我不知道怎么做。任何帮助或对某些链接的任何方向将不胜感激。谢谢
1条答案
按热度按时间mdfafbf11#
体系结构:需要反向代理+容器编排工具
如果您的spring引导容器只提供http请求,那么您可以将其与tls终止代理相链接,该代理将接受传入的tls连接并将请求转发到您的容器。
反向代理的许多实现都是可用的,它们可以扮演tls终止代理的角色(请参阅wikipedia上的这一段),例如使用您建议的let's encrypt。
这些实现中的大多数还可以作为docker映像使用,因此您可能需要依赖容器编排工具(如docker compose)和
docker-compose.yml
为两个容器创建专用网络以进行通信(或者,使用更复杂的编排解决方案,例如kubernetes)。几个docker实现的概述
举几个实现这一点的docker映像的例子,例如,您可以使用一个流行的反向代理(gitea的文档中提到了前两个):
nginx(也捆绑在诸如https portal之类的项目中以自动生成证书),
apache2 httpd公司,
tr公司æfik,它还提供了一个作为webapp的“监控 Jmeter 板”(另请参阅官方文档,其中提供了许多关于自动证书生成的详细信息)