V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zzm88104
V2EX  ›  问与答

网站用户自定义 https 域名什么方案合适?

  •  
  •   zzm88104 · 2022-09-30 13:48:26 +08:00 · 1487 次点击
    这是一个创建于 770 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如我的站点是https://www.mysite.com
    用户自己生成的内容是https://www.mysite.com/any_name/ ,用什么办法可以让用户的域名https://www.user_domain.com直接连接到https://www.mysite.com/any_name/ ? 类似 notion 或者 wix.com 那种自定义域名的功能。

    我在想的是通过脚本为每个用户自动创建一个 docker 容器,里面是 nginx 或 caddy ,负责用户的证书签名以及转发用户域名到https://www.mysite.com/any_name/,这样做可行吗,会不会很消耗资源?还是说用一个容器就可以处理全部用户的转发和 ssl 签名?

    8 条回复    2022-10-01 19:43:23 +08:00
    my3157
        1
    my3157  
       2022-09-30 14:07:54 +08:00
    openresty 了解下
    Bingchunmoli
        2
    Bingchunmoli  
       2022-09-30 17:36:24 +08:00 via Android
    nginx 了解一下,反向代理都可以解决,
    novaeye
        3
    novaeye  
       2022-09-30 17:46:07 +08:00
    用户的自定义域名配置为 CNAME 至 www.mysite.com , 然后后台记录一下自定义域名与 any_name 的映射关系, 然后在应用访问入口根据当前请求过来的域名兑换一下应该就可以了.
    matzoh
        4
    matzoh  
       2022-09-30 17:46:07 +08:00
    话说用户的域名是你负责托管的吗? 直接 cname 到你们的域名,然后做转发就行了
    shyling
        5
    shyling  
       2022-09-30 17:52:42 +08:00
    跟容器不容器有啥关系。。

    cname 到你的域名,然后 sni 获得域名,使用已存的证书或者现生成的证书(如果你可以)不就行了。
    PMR
        6
    PMR  
       2022-09-30 17:55:51 +08:00 via Android
    @shyling 万物皆 docker :doge:
    caola
        7
    caola  
       2022-10-01 03:34:37 +08:00   ❤️ 1
    @zzm88104 你应该是想解决自动根据域名来加载对应的 ssl 证书?
    我以前用的是 openresty + redis ,现在改为 golang + kvrocks (硬盘版 redis)
    域名的证书存放在 redis 或 kvrocks 里,https 握手时收到的 server_name 就去查 redis ,然后连接 https 连接

    openresty 有个 ngx.ssl ( https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/ssl.md
    qfdk
        8
    qfdk  
       2022-10-01 19:43:23 +08:00 via iPhone
    我之前做了一个 有兴趣的话我可以出技术, 包括自签名 我做的 saas
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2851 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:22 · PVG 10:22 · LAX 18:22 · JFK 21:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.