为Nginx Docker容器配置HTTPS访问(目标地址https://192.168.99.100)
实现通过HTTPS访问Nginx Docker容器
嘿,我来帮你搞定通过HTTPS访问Nginx Docker容器的事儿!先梳理下你已经做的准备,再补全剩下的关键步骤,确保能顺利访问:
你已完成的准备工作
- 编写了Dockerfile,指定基于Nginx镜像,复制证书文件到容器对应目录,替换默认站点配置,并暴露443端口
- 在本地
certs文件夹准备好了自签名证书文件:nginx-selfsigned.crt和nginx-selfsigned.key - 开始编写
default-ssl.conf配置文件
补全Nginx SSL配置文件
你的default-ssl.conf看起来没写完,这里给你一个完整的可用配置模板,直接替换或者补全就行:
server { listen 80; listen 443 ssl; server_name localhost; # 指定SSL证书和密钥路径(和你Dockerfile里复制的路径对应) ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; # 可选的SSL安全优化配置,提升安全性 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # Nginx默认的网页根目录和索引页 root /usr/share/nginx/html; index index.html index.htm; # 处理请求的基础规则 location / { try_files $uri $uri/ =404; } # 可选配置:自动把HTTP请求重定向到HTTPS if ($scheme != "https") { return 301 https://$host$request_uri; } }
构建并运行Docker容器
完成配置后,就可以构建镜像并启动容器了,执行以下命令:
- 构建自定义Nginx镜像:在Dockerfile所在的目录下运行
docker build -t nginx-ssl .
- 启动容器并映射端口:把容器的443端口映射到宿主机的443端口(如果宿主机443端口被占用,可以换成其他端口,比如
4430:443)
docker run -d -p 443:443 --name nginx-ssl-container nginx-ssl
如果需要支持HTTP转HTTPS的重定向,记得同时映射80端口:
docker run -d -p 80:80 -p 443:443 --name nginx-ssl-container nginx-ssl
验证访问
现在你就可以通过https://192.168.99.100访问你的Nginx容器了!因为用的是自签名证书,浏览器会弹出安全警告,这是正常现象,选择“继续访问”就能看到Nginx的默认页面啦。
内容的提问来源于stack exchange,提问作者vivanov
相关产品推荐
相关产品推荐

