全球主机交流论坛

标题: 请教portainer的https访问问题 [打印本页]

作者: 梦幻现实    时间: 2023-3-16 10:42
标题: 请教portainer的https访问问题
我用docker搭建了一个portainer,配置如下

nginx配置:

我用http访问就正常,用https访问,客户端就提示

请问这种如何解决?
作者: Amanda    时间: 2023-3-16 10:52
发完贴自己都不看一眼的人,还指望别人帮你,自己先帮帮自己吧
作者: 梦幻现实    时间: 2023-3-16 11:00
Amanda 发表于 2023-3-16 10:52
发完贴自己都不看一眼的人,还指望别人帮你,自己先帮帮自己吧


??
所以你知道怎么解决吗?
作者: Amanda    时间: 2023-3-16 11:07
梦幻现实 发表于 2023-3-16 11:00
??
所以你知道怎么解决吗?

你看看你发的是啥玩意
作者: 梦幻现实    时间: 2023-3-16 11:09
Amanda 发表于 2023-3-16 11:07
你看看你发的是啥玩意

意思就是你不知道咯
作者: 920    时间: 2023-3-16 11:09
https://127.0.0.1 ??
作者: 梦幻现实    时间: 2023-3-16 11:14
920 发表于 2023-3-16 11:09
https://127.0.0.1 ??

对的,因为是反向代理
作者: wps    时间: 2023-3-16 11:16
http://127.0.0.1不就可以
作者: 蛋饼    时间: 2023-3-16 11:18
建议80跟443分开写,另外学下nginx配置。是http://localhost:9443
作者: 梦幻现实    时间: 2023-3-16 11:23
wps 发表于 2023-3-16 11:16
http://127.0.0.1不就可以

现在的情况是,用http://xxxx是可以访问的,用https://xxx就不能访问
作者: 梦幻现实    时间: 2023-3-16 11:26
本帖最后由 梦幻现实 于 2023-3-16 11:41 编辑
蛋饼 发表于 2023-3-16 11:18
建议80跟443分开写,另外学下nginx配置。是http://localhost:9443


这个不行,它不监听http的协议了。
它监听两种,一种是http,9000端口,另一种就是https,9443端口。
我开了强制ssl,它就不会监听9000端口了,所以用http是无效的。

而且你用http去访问9443端口,浏览器会提示你必须用https才能访问9443端口

作者: 蛋饼    时间: 2023-3-16 11:37
梦幻现实 发表于 2023-3-16 11:26
这个不行,它不监听http的协议了。
它监听两种,一种是http,9000端口,另一种就是https,9443端口,来。 ...

你开了强制ssl,将80端口转到443就行。另外你的镜像暴露的端口就是本机的9443,代理到本机的443端口,跟9000端口没有啥关系呀。
作者: 萌䒤萌    时间: 2023-3-16 11:39
反正你要用反代的话不如直接反代portainer的http
作者: 梦幻现实    时间: 2023-3-16 11:42
萌䒤萌 发表于 2023-3-16 11:39
反正你要用反代的话不如直接反代portainer的http

也是一样的,都是那个报错
作者: 梦幻现实    时间: 2023-3-16 11:44
蛋饼 发表于 2023-3-16 11:37
你开了强制ssl,将80端口转到443就行。另外你的镜像暴露的端口就是本机的9443,代理到本机的443端口,跟9 ...

用http的9000端口其实也是这个报错
作者: 萌䒤萌    时间: 2023-3-16 11:45
本帖最后由 萌䒤萌 于 2023-3-16 11:47 编辑

upstream portainer {
  server 127.0.0.1:9443;
}
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

server {
    listen      443 ssl http2;
    server_name xxxx;
省略
  location /portainer/ {
    proxy_http_version 1.1;
    proxy_set_header Host              $http_host;   
    proxy_set_header X-Real-IP         $remote_addr;
    proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_read_timeout                 900;

    proxy_set_header Connection "";
    proxy_buffers 32 4k;
    proxy_pass https://portainer/;
  }

  location /portainer/api/websocket/ {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_pass https://portainer/api/websocket/;
  }
}

这是我的配置,反代在了子目录,80的配置是跳转443

容器端口映射127.0.0.1:9443:9443  不暴露本机9443
作者: 梦幻现实    时间: 2023-3-16 12:01
本帖最后由 梦幻现实 于 2023-3-16 12:03 编辑
萌䒤萌 发表于 2023-3-16 11:45
upstream portainer {
  server 127.0.0.1:9443;
}


谢谢大佬,但用https还是一样的错误

作者: 萌䒤萌    时间: 2023-3-16 12:05
那我感觉你这是证书的问题
作者: 梦幻现实    时间: 2023-3-16 12:09
萌䒤萌 发表于 2023-3-16 12:05
那我感觉你这是证书的问题

用的zerossl的证书

作者: DearJohn    时间: 2023-3-16 16:31
你这个nginx的127.0.0.1是读取不到的,药改成你本机的ipv4地址
作者: diocat    时间: 2023-3-16 16:33
本帖最后由 diocat 于 2023-3-16 16:39 编辑

proxy pass https://127.0.0.1:9443 改成
proxy pass http://127.0.0.1:9000

并在docker暴露9000端口,关闭portainer仅https访问
作者: tilm    时间: 2023-3-16 16:34
编辑
作者: radiogaga    时间: 2023-3-16 16:38
把 127.0.0.1 换成 172.17.0.1 试试
172.17.0.1是docker内网IP
作者: 梦幻现实    时间: 2023-3-16 19:21
radiogaga 发表于 2023-3-16 16:38
把 127.0.0.1 换成 172.17.0.1 试试
172.17.0.1是docker内网IP

目前发现配置是正常的,因为同样的机器在其他机器上可以运行。
不知道是v6的问题还是机器的问题




欢迎光临 全球主机交流论坛 (https://52.ht/) Powered by Discuz! X3.4