配置证书相关的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AndreasG
V2EX    NGINX

配置证书相关的问题

  •  
  •   AndreasG 348 天前 2347 次点击
    这是一个创建于 348 天前的主题,其中的信息可能已经有所发展或是发生改变。

    手上的资源

    1. 我家只有一条家用宽带意味着我无法使用 80 、443 端口
    2. 家里是动态 ip ,带 ipv4 公网
    3. 公网访问的方法:使用了 tplink 路由器自带的的 tpddns 直接生成的域名
    4. 端口转发使:由于宽带原生支持公网,所以直接开放的端口
    5. 目前在用的公网访问方式: 因为 tpddns 的域名有点长用着麻烦,而刚好我阿里云上还有个闲置的域名,目前是直接解析到 tpddns 域名上用了
    6. 我在阿里云申请了免费的 3 月有效期证书
    7. 家里 Esxi 开了一个群晖和两个 linux 虚拟机

    目前的需求

    我想实现在一台 Linux 虚拟机上配置 nginx ,用于代理家里这三台虚拟机上的服务,可以实现 https 访问 

    目前遇到的问题

    1. 我申请签发的时候使用了闲置的阿里云域名,秒通过,但是配置了 nginx 之后访问不通(有可能是没配置好,或者是因为二次解析的域名,到达 tpddns 域名的时候就失效了,这部分没怎么测试,昨晚刚申请的)
    2. tpddns 作为域名申请阿里云签发的时候被拒绝了,原因貌似是因为没有 80 和 443 端口

    问题

    1. 我是否可以在一台机器上配置 ngixn 服务用于代理所有家里的服务,因为三台虚拟机的 ip 都不同,如何保证请求是直接发送给 nginx 而不是直接发送到对应的虚拟机上呢
    2. 我的思路很混乱,不太懂 nginx 的代理流程,目前这种两个域名的情况我应该申请签发哪个域名的证书呢
    3. 如果签发完成我需要在 nginx 代理中监听的域名是 阿里云的域名还是 tpddns 的域名呢
    第 1 条附言    346 天前

    多谢各位大佬帮助,总计耗时大约3个半小时解决问题

    1. 是需要一个闲置域名,tpddns 是不能申请证书的,这点歪打正着我刚好有了
    2. 配置证书我一共用了以下几个,有同样问题的小伙伴可以参考以下

    知乎中最简单的配置方式

    哔哩哔哩中大致的配置方式

    acme.sh的项目地址

    acme.sh的项目简单配置的中文文档

    期间再次感谢GPT让我一个菜鸟搞定这玩意

    最后重点感谢 @flyingfz 老哥,几句话无比清晰让我感觉这个事情能整,还有其他回复帮助的老哥

    19 条回复    2024-11-30 00:39:05 +08:00
    leenhawk2
        1
    leenhawk2  
       348 天前
    acme.sh 签名证书,为什么是发送到虚拟机,CNAME 和实际 HTTPS 的头需要的不是一样的,监听你的服务域名
    flyingfz
        2
    flyingfz  
       348 天前   1
    1. 首先不用想 443 了 。
    2. 路由器上应 启用 ddns ,假设是 abc.tpddns.cn , 这个域名会时刻更新为路由器的 ip.
    3. 你拥有的 闲置的域名 , 假设是 ,xxx.com ,
    4. 在 xxx.com 的解析里, 增加个解析, 例如 : 名 *.home , 类型 cname , 值 abc.tpddns.cn .
    5. 路由器上增加个 端口映射,例如 543 ,转发到 Linux 虚拟机的内网 ip 上的 543 端口,
    6. Linux 虚拟机的 nginx 监听在 543 端口, 可以使用 acme.sh 通过 dns 方式获取 *.home 的泛域名证书。
    7. nginx 再增加各种 server_name 的配置, 例如 abc.home.xxx.com
    8. 公网上, 可以使用 https://abc.home.xxx.com:543 访问到。
    Ipsum
        3
    Ipsum  
       348 天前
    不建议直接暴露服务,都有公网了最好还是加 vpn 回家直接 http 访问。家宽就算改了 443,80 等端口也会被扫到,isp 一旦扫到了就是断网。如果非要对外使用 https ,直接用 acme.sh 的 dns provider 申请泛域名证书,记得有个 callback 的钩子可以续期后自动 reload nginx 。
    JensenQian
        4
    JensenQian  
       348 天前
    搞个 wireguard 连回去完事了
    SenLief
        5
    SenLief  
       348 天前
    公网访问有人扫,尤其是厂商的 ddns 域名,如果家里服务自己使用的话还是 vpn 回家比较好。
    jpyl0423
        6
    jpyl0423  
       348 天前   1
    你这种情况直接上 nginx-proxy-manager

    momooc
        7
    momooc  
       348 天前
    用( github 搜) lego dns 验证方式申请域名,建议 VPN/组网/wireguard 回家,原因就是安全。
    yinmin
        8
    yinmin  
       348 天前 via iPhone
    1. tpddns 域名是无法签发证书,因为你没有 80 、443 端口

    2. 你自己域名可以通过 cname 指向 tpddns 域名,设置后 ping 自己域名看看 ip 是否生效

    3. 可以部署 acme.sh 使用 alidns 认证,自动签发/续签证书,建议签发自己域名的通配符证书

    4. nginx 可以配置 https stream 方式,不同子域名指向后端不同 ip 的服务(具体配置可以问 gpt )
    Andrue
        9
    Andrue  
       348 天前
    套个 VPN 直接组网吧,安全易管理,公网还会被 ISP 阻断
    AndreasG
        10
    AndreasG  
    OP
       347 天前
    @flyingfz

    多谢老哥,在研究了,后面配置端口开放时候都指向 nginx 的 ip 对吧,
    nginx 的内网地址为 192.168.0.50
    比如群晖 DSM 的内网为 192.168.1.100:5000

    现在我是开放 192.168.1.100 的 5000 映射到公网

    后面配置 https 的话应该路由器不开放其他 ip 只开放 nginx 的 ip 和 500 端口 然后用 nginx 再转发到内网的 192.168.0.100:5000 对吗
    然后 https 的证书就配给阿里云的域名,

    就行了对吗?

    如果在研究一下貌似可以统一配置端口转发,是不是可以顺便实现
    192.168.0.100:5000/address
    不同的 address 转发到不同的服务中,实现只开放一个端口而访问多个服务,这种方式是否简化访问还相对安全
    AndreasG
        11
    AndreasG  
    OP
       347 天前
    @Ipsum 多谢老哥,主要是 iphone 它不能用 http 的 webdav 我才研究这个了
    AndreasG
        12
    AndreasG  
    OP
       347 天前
    @leenhawk2 多谢老哥
    AndreasG
        13
    AndreasG  
    OP
       347 天前
    @JensenQian 主要是 iPhone 的 webdav 强制要求 https
    AndreasG
        14
    AndreasG  
    OP
       347 天前
    @SenLief 多谢老哥建议
    AndreasG
        15
    AndreasG  
    OP
       347 天前
    @jpyl0423 好的,我研究一波,谢谢老哥
    AndreasG
        16
    AndreasG  
    OP
       347 天前
    @momooc wireguard 回家的话是不是只用开放 vpn 的端口就行,然后每台需要纳入 vpn 的服务器都需要注册在 vpn 之下
    AndreasG
        17
    AndreasG  
    OP
       347 天前
    @yinmin 多谢老哥
    lovelive1024
        18
    lovelive1024  
       347 天前
    1 、使用 ddns 工具自动向阿里云 dns 解析你的自有域名
    2 、安装 nginx-proxy-manager 并申请证书
    2 、外部所有请求都经过 nginx-proxy-manager ,配置转发到各个服务
    AndreasG
        19
    AndreasG  
    OP
       346 天前
    @ily433664 多谢老哥支招,我最后用了另一个,非常感谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3024 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 12:49 PVG 20:49 LAX 04:49 JFK 07:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86