宇宙主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

欧基零壹微头条IP归属甄别会员请立即修改密码
查看: 1407|回复: 16

大佬们求助,怎么让docker的容器使用https

[复制链接]
发表于 2023-1-12 08:58:57 | 显示全部楼层 |阅读模式
小弟想在v2服务器上跑一个vaultwarden,已经知道如何端口转发,但是https 443转发到docker里打不开网页,看官方文档说是要反向代理,但是我查了一下反向代理是宿主机是http才需要反向代理,求大佬指点怎么让docker的容器使用主机的https
发表于 2023-1-12 09:07:21 | 显示全部楼层
本帖最后由 sRGB 于 2023-1-12 09:12 编辑

从 CF 申请泛域名的 15年证书
nginx 配置 证书就可以

下面这个方向代理套CF 给你参考一下
/etc/nginx/conf.d/wp.zjpt.wiki.conf


  1.     server {
  2.         listen 443 ssl http2;
  3.         listen [::]:443 http2;
  4.         ssl_certificate       /ssl/xray.crt;
  5.         ssl_certificate_key   /ssl/xray.key;
  6.         ssl_protocols         TLSv1.3;
  7.         ssl_ecdh_curve        X25519:P-256:P-384:P-521;
  8.         server_name           wp.zjpt.wiki;
  9.         index index.html index.htm;
  10.         root  /var/www/html;
  11.         error_page 400 = /400.html;

  12.         # Config for 0-RTT in TLSv1.3
  13.         ssl_early_data on;
  14.         ssl_stapling on;
  15.         ssl_stapling_verify on;
  16.         add_header Strict-Transport-Security "max-age=63072000" always;

  17.         location /3821d8cac325/
  18.         {
  19.             proxy_redirect off;
  20.         proxy_pass http://127.0.0.1:13299;
  21.             proxy_http_version 1.1;
  22.             proxy_set_header X-Real-IP \$remote_addr;
  23.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  24.             proxy_set_header Upgrade $http_upgrade;
  25.             proxy_set_header Connection "upgrade";
  26.             proxy_set_header Host $http_host;
  27.             # Config for 0-RTT in TLSv1.3
  28.             proxy_set_header Early-Data $ssl_early_data;
  29.         }



  30. }
  31.     server {
  32.         listen 80;
  33.         listen [::]:80;
  34.         server_name wp.zjpt.wiki;
  35.         return 301 https://$http_host$request_uri;
  36.     }
复制代码
 楼主| 发表于 2023-1-12 09:11:15 | 显示全部楼层
sRGB 发表于 2023-1-12 09:07
从 CF 申请泛域名的 15年证书
nginx 配置 证书就可以

nginx已经配置过证书了,但是不知道怎么设置到docker里
发表于 2023-1-12 09:13:24 | 显示全部楼层
大桥未久 发表于 2023-1-12 09:11
nginx已经配置过证书了,但是不知道怎么设置到docker里

自己进入容器 一般是NGINX 把配置文件映射出来
改那个配置文件就行了
发表于 2023-1-12 09:14:29 | 显示全部楼层
https://github.com/lucaslorentz/caddy-docker-proxy
发表于 2023-1-12 09:14:36 | 显示全部楼层
大桥未久 发表于 2023-1-12 09:11
nginx已经配置过证书了,但是不知道怎么设置到docker里
  1. docker run -d -p 80:80 -p 443:443  \
  2.     --cpus 0.8   --restart=always   \
  3.     -v /var/www/html:/var/www/html   -v  /var/www/cert:/etc/nginx/cert  \
  4.     -v /var/www/cert/conf.d:/etc/nginx/conf.d  \
  5.     --name  nginx-php      \
  6.     hongwenjun/nginx-php
复制代码


挂载 conf.d 和 证书目录
/var/www/cert/conf.d:/etc/nginx/conf.d
/var/www/cert:/etc/nginx/cert
 楼主| 发表于 2023-1-12 09:19:52 | 显示全部楼层
sRGB 发表于 2023-1-12 09:14
挂载 conf.d 和 证书目录
/var/www/cert/conf.d:/etc/nginx/conf.d
/var/www/cert:/etc/nginx/cert

大佬,这个例子是意思需要另开一个docker用来跑https还是直接照这个格式去改我要跑https的docker容器的启动参数
发表于 2023-1-12 09:20:26 | 显示全部楼层
docker inspect 容器id  查看容器的ip地址

在容器的端口确保已经映射的情况下,反代直接设置为

proxy_pass http://容器ip:端口
发表于 2023-1-12 09:22:52 | 显示全部楼层
大桥未久 发表于 2023-1-12 09:19
大佬,这个例子是意思需要另开一个docker用来跑https还是直接照这个格式去改我要跑https的docker容器的启 ...

你可以 进入 docker 容器去修改这2个目录,配置好了

可以把配置目录 复制出来,以后新建容器挂载就方便了

也可以使用一键脚本建立配置,然后
把目录备份,修改下配置,然后 新建容器挂载就行
 楼主| 发表于 2023-1-12 09:27:49 | 显示全部楼层
woniu 发表于 2023-1-12 09:20
docker inspect 容器id  查看容器的ip地址

在容器的端口确保已经映射的情况下,反代直接设置为

谢谢大佬,用你的方法成功了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宇宙主机交流论坛

GMT+8, 2024-10-30 13:35 , Processed in 0.062512 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表