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

自定义域名还能自动 https 是怎么做到的?

  •  
  •   balabalaguguji · 2021-07-08 16:32:16 +08:00 · 2075 次点击
    这是一个创建于 1013 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有些网站可以自定义域名,输入一个自己的域名,配置一个 cname,然后就可以访问了,这没什么。 关键他可以自动 https 这是怎么做的?

    是不是自动申请了一个免费证书,自动帮你应用上去了,有什么 API 接口可以获取免费证书吗?

    第 1 条附言  ·  2021-07-08 18:24:20 +08:00
    感谢,按照一楼的说法,已经学会了,有工具可以自动获取并且自动部署到 nginx,方便
    16 条回复    2021-07-10 09:30:59 +08:00
    hotcool100
        1
    hotcool100  
       2021-07-08 16:33:50 +08:00   ❤️ 1
    Let's Encrypt
    smileawei
        2
    smileawei  
       2021-07-08 16:36:39 +08:00
    DV 的 SSL 证书颁发。
    有一种验证域名身份的方法是 生成随机的 ID 然后访问你域名+ID 。如果得到 ID 值就证明该域名是你所有,颁发证书。
    Jirajine
        3
    Jirajine  
       2021-07-08 16:37:56 +08:00 via Android
    其实甚至都不需要你配置域名,只要 cname 指向过去就能直接用 https 访问。当然这个特性容易被滥用,对外服务一般都不开。
    caddyserver.com/docs/automatic-https#on-demand-tls
    smileawei
        4
    smileawei  
       2021-07-08 16:39:19 +08:00
    HTTP-01 验证方式
    这是当今最常见的验证方式。Let’s Encrypt 向您的 ACME 客户端提供一个令牌,然后您的 ACME 客户端将在您对 Web 服务器的 http://<YOUR_DOMAIN>/.well-known/acme-challenge/<TOKEN>(用提供的令牌替换 <TOKEN>)路径上放置指定文件。该文件包含令牌以及帐户密钥的指纹。一旦您的 ACME 客户端告诉 Let’s Encrypt 文件已准备就绪,Let’s Encrypt 会尝试获取它(可能从多个地点进行多次尝试)。如果我们的验证机制在您的 Web 服务器上找到了放置于正确地点的正确文件,则该验证被视为成功,您可以继续申请颁发证书。如果验证检查失败,您将不得不再次使用新证书重新申请。

    我们的 HTTP-01 验证最多接受 10 次重定向。我们只接受目标为“http:”或“https:”且端口为 80 或 443 的重定向。我们不目标为 IP 地址的重定向。当被重定向到 HTTPS 链接时,我们不会验证证书是否有效(因为验证的目的是申请有效证书,所以它可能会遇到自签名或过期的证书)。

    HTTP-01 验证只能使用 80 端口。因为允许客户端指定任意端口会降低安全性,所以 ACME 标准已禁止此行为。

    很多提供免费 SSL 证书的。
    比如 Let's Encrypt
    balabalaguguji
        5
    balabalaguguji  
    OP
       2021-07-08 16:51:38 +08:00
    @hotcool100 #1 感谢,我看看
    balabalaguguji
        6
    balabalaguguji  
    OP
       2021-07-08 16:51:50 +08:00
    @smileawei #2 好的,多谢,我看看
    balabalaguguji
        7
    balabalaguguji  
    OP
       2021-07-08 16:52:01 +08:00
    @Jirajine #3 多谢
    kanecolin
        8
    kanecolin  
       2021-07-08 17:05:14 +08:00
    我理解你说的这个东西应该叫通配符域名吧,举例:
    a.baidu.comb.baidu.comc.baidu.comd.baidu.com 。。。 。。。这些都不一定是独立的证书,可能就是一张通配符证书就 okay 了。

    还有一种形式就是靠证书链解决的
    balabalaguguji
        9
    balabalaguguji  
    OP
       2021-07-08 17:09:29 +08:00
    @kanecolin #8 不不不,我说的是不同域名,你这个只是二级域名
    troilus
        10
    troilus  
       2021-07-08 18:00:06 +08:00
    Candy 超级方便
    vantis
        11
    vantis  
       2021-07-08 18:16:29 +08:00 via Android
    代理吧 对方给你做了前置代理 域名解析先到对方服务 对方再转发请求你
    参考 cloudflare
    mxT52CRuqR6o5
        12
    mxT52CRuqR6o5  
       2021-07-08 18:19:21 +08:00
    Let's Encrypt 就有免费的 https 证书啊,都出好久了
    你配置 cname 指过去,那边就能通过证书提供商的验证获取单域名证书了
    mxT52CRuqR6o5
        13
    mxT52CRuqR6o5  
       2021-07-08 18:21:06 +08:00
    是他 cname 指向你还是你 cname 指向他,https 访问时最终显示的是谁的域名
    balabalaguguji
        14
    balabalaguguji  
    OP
       2021-07-08 18:32:26 +08:00
    @mxT52CRuqR6o5 #12 嗯,已经学会了,感谢
    Maskeney
        15
    Maskeney  
       2021-07-08 19:13:42 +08:00 via Android
    你都 cname 过去了…文件验证签发证书就是了
    NatsumeMio
        16
    NatsumeMio  
       2021-07-10 09:30:59 +08:00 via iPhone
    应该是通配符域名证书,let‘s encrypt 有限制每小时每个域名 5 次的限制。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1215 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:14 · PVG 07:14 · LAX 16:14 · JFK 19:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.