Java 运行在docker上的https spring应用程序
我最近几天的问题是,我正试图加密我正在进行的一些项目。 因为Docker对我来说是一个很好的解决方案(如果它在本地运行,它将远程运行),据我所知,我有3层可以实现我的ssl证书。 第一层是实例或VM(在我的例子中是本地的),aws或google。第二层是Docker守护进程(充当运行的所有容器的服务器或管理器),最后一层是spring boot应用程序或运行在jdk alpine环境(可能是tomcat服务器)上的服务 要加密应用程序并通过我的inteliJ运行,一切顺利,我获得了一个安全的应用程序连接。一旦我构建了包含jar应用程序的docker文件并使用以下行运行它: docker run-p 443:8443 myImage 我收到错误消息: 配置为在端口8443上侦听的Tomcat连接器无法启动。端口可能已在使用中,或者连接器可能配置错误 无论我在spring boot application.properties中定义了什么端口Java 运行在docker上的https spring应用程序,java,docker,spring-boot,ssl,https,Java,Docker,Spring Boot,Ssl,Https,我最近几天的问题是,我正试图加密我正在进行的一些项目。 因为Docker对我来说是一个很好的解决方案(如果它在本地运行,它将远程运行),据我所知,我有3层可以实现我的ssl证书。 第一层是实例或VM(在我的例子中是本地的),aws或google。第二层是Docker守护进程(充当运行的所有容器的服务器或管理器),最后一层是spring boot应用程序或运行在jdk alpine环境(可能是tomcat服务器)上的服务 要加密应用程序并通过我的inteliJ运行,一切顺利,我获得了一个安全的应用
#HTTPS
server.port: 8443
server.ssl.key-store: https-key.jks
server.ssl.key-store-password: password
server.ssl.keyStoreType: JKS
server.ssl.keyAlias: https-key
我得到的消息是,端口已被使用,这意味着我缺少了一些东西
任何帮助/指南,以实现一个https://连接到一个运行在Docker上的spring boot应用程序,都将是我工作的一大亮点,我将非常感激 我以前用SSL配置过Spring Boot。它起作用了,但是我发现一个更灵活、文档更完善、速度更快的解决方案(也是从性能角度来看)是添加
nginx
Nginx可以充当反向代理,因此当用户请求example.com:443
SSL时,它将被Nginx
终止,并转发到您的Spring Boot应用程序,该应用程序在8080
上进行监听,而不暴露于外界。e、 g
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/key;
location / {
proxy_pass http://spring_boot_application;
}
upstream spring_boot_application {
server spring_boot_application:8080;
}
有人做了同样的事情,都使用了
docker
我尝试了教程,遇到了一些问题,但解决了,除了现在我能看到的只是Nginx html索引文件,而不是我的实际应用程序。。。但这让我现在明白多了。。需要进一步了解如何配置Nginx容器并使其正确。tnx:)@ndrzhr感谢是通过投票或接受答案给出的。此时,本教程已被作者删除。