1Panel
1Panel copied to clipboard
[BUG] 相同域名不同端口的反向代理,启用HTTPS出错。
联系方式
No response
1Panel 版本
1.10.2
问题描述
使用同一个域名,不同端口号,反向代理到不同容器,开启HTTPS后配置出错。
开启HTTPS前后,配置文件对比:
3a4,7
> listen 443 ssl http2 ;
> listen [::]:443 ssl http2 ;
> listen 80 ;
> listen [::]:80 ;
35a40,54
> if ($scheme = http) {
> return 301 https://$host$request_uri;
> }
> ssl_certificate /www/sites/domain-rp7100/ssl/fullchain.pem;
> ssl_certificate_key /www/sites/domain-rp7100/ssl/privkey.pem;
> ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
> ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
> ssl_prefer_server_ciphers on;
> ssl_session_cache shared:SSL:10m;
> ssl_session_timeout 10m;
> add_header Strict-Transport-Security "max-age=31536000";
> error_page 497 https://$host$request_uri;
> proxy_set_header X-Forwarded-Proto https;
> ssl_stapling on;
> ssl_stapling_verify on;
问题出现在第一段,也就是说同一个域名,多个端口,每个里面都会server的配置里面都监听80/443,造成了解析混乱。
重现步骤
分别添加两次网站,使用同一个域名+不同的端口,然后每个网站都启用HTTPS。
期待的正确结果
No response
相关日志输出
No response
附加信息
No response
配置出错是 https 窜站了吗?可以考虑把某个 https 网站设置为默认网站
意思是说,只要启用HTTPS,1panel就会增加
listen 443 ssl http2 ; listen [::]:443 ssl http2 ; listen 80 ; listen [::]:80 ;
到配置中,而我的域名都是同一个,只是端口号不同,这个就有问题了。
对于 domain:port类型的网站,配置应该是:
listen ${port} ; listen [::]:${port} ;
启用 HTTPS后
listen ${port} ssl http2 ; listen [::]:${port} ssl http2 ;
不需要加80/443。
另外IPv4,IPv6建议都显示出来,至少选一个。现在宽带接入公网IPv4很少了,比如只选IPv6
HTTP就是
listen [::]:${port} ;
HTTPS就是
listen [::]:${port} ssl http2 ;
1Panel 逻辑是 你安装 OpenResty 会配置默认的 http 和 https 端口 开启 https 的时候 会设置默认的 https 端口 如果你添加了域名:端口 我们是不会处理的 因为如果你添加了 10 个不同的域名:端口 我们无法确定你要给哪个开启 https