V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
sneezry
V2EX  ›  分享创造

如何使用 SSL.MD 免费签发证书

  •  
  •   sneezry ·
    Sneezry · 2016-09-19 00:38:27 +08:00 · 3434 次点击
    这是一个创建于 3019 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前写了一个 SSL.MD ( https://ssl.md )帮助大家免费签发的帖子( https://www.v2ex.com/t/301332 ),经过几天的观察,发现成功签发出去的证书不多,思考了几天,改进了部分签发流程以及提示说明。

    目前也看到了从注册到签发一次成功的用户,想必这样的用户本身对证书签发流程就很熟悉,尤其是对 ACME 协议签发证书的流程。

    考虑到很多用户只是想快速拿到一张证书,结合之前帖子的讨论( https://www.v2ex.com/t/302020 ),目前 SSL.MD 可以为不清楚证书签发流程的用户快速签发证书。

    签发证书失败的原因主要集中在三个地方:

    1 、域名验证。这里验证域名的同时也是为了代理 ACME 验证,如果你签发的证书是 sub.foo.com ,那么应该将_acme-challenge.sub.foo.com 的 NS 记录指向 acme.ssl.md.,之前网站的提示只说把_acme-challenge 主机名的 NS 指向 acme.ssl.md.造成了误解,现在已经更改了提示信息。

    2 、生成 CSR 。 CSR 是签发证书过程中的一个重要文件,它是证书签发请求的依据,之前 SSL.MD 在 CSR 上传页面为每个域名单独展示了可以直接运行的 CSR 生成命令,只需将命令复制到终端并运行就可以得到 CSR ,但对于部分用户依然造成了困难,所以 SSL.MD 在上传 CSR 的页面中提供了 Generate 按钮,点击后可以进入在线生成 CSR 的警告页面,勾选“我清楚不应在产品中使用在线生成的 CSR ”复选框后点击 Generate ,就可以看到私钥,同时提示证书会稍后发送到用户邮箱中。

    3 、 CSR 中附带了别名。虽然 Let's Encrypt 支持别名,但是 SSL.MD 尚不支持(因为我懒 - -),如果你需要为 foo.comwww.foo.com 签发证书,请将这两个域名作为两个不同的域名分别添加及签发证书。别名的支持已经在计划中了,但暂时还没有太多时间实现。

    大家在使用的过程中遇到什么问题和建议欢迎在这里留言讨论,也希望这个工具能够帮助大家方便地管理证书。
    第 1 条附言  ·  2016-09-20 01:30:22 +08:00
    已经支持别名了
    23 条回复    2016-09-21 12:52:17 +08:00
    lslqtz
        1
    lslqtz  
       2016-09-19 00:48:19 +08:00
    我只是在想为啥不用 SSL For Free ,也很方便。
    这是再造轮子么。。
    https://www.sslforfree.com/
    sneezry
        2
    sneezry  
    OP
       2016-09-19 01:00:03 +08:00
    @lslqtz 感觉 FTP 没有 DNS 方便啊,造轮子没啥问题啊,没影响别人还给提供了新的选择有啥不好的啊
    lslqtz
        3
    lslqtz  
       2016-09-19 02:30:34 +08:00
    @sneezry 也是,但是注册账号这个功能不太需要。
    感觉 ftp 比 dns 方便。
    sneezry
        4
    sneezry  
    OP
       2016-09-19 02:39:38 +08:00 via Android
    @lslqtz 居然还没睡…注册账号可以清晰管理证书啊,以后再来个定期自动签发多好
    lslqtz
        5
    lslqtz  
       2016-09-19 02:47:32 +08:00
    @sneezry 也是,不注册可以签的话更 ok
    z742364692
        6
    z742364692  
       2016-09-19 08:18:03 +08:00 via Android
    官方的 certbot 不能满足需要?
    imxieke
        7
    imxieke  
       2016-09-19 11:59:41 +08:00
    刚刚试了下 DNS 记录一直没生效 但是我本地已经生效了 等了 10 来分钟还是没有生效。。。。

    ![图片]( https://dn-coding-net-production-pp.qbox.me/47525f4a-0209-44b6-8f85-f82844fea37a.png)

    ![图片]( https://dn-coding-net-production-pp.qbox.me/0c86ae7c-af15-4750-995e-02fe35670863.png)
    sneezry
        8
    sneezry  
    OP
       2016-09-19 12:02:29 +08:00
    @imxieke 是 NS ,不是 CNAME
    imxieke
        9
    imxieke  
       2016-09-19 12:08:11 +08:00
    @sneezry 抱歉 是我先入为主 以为就是 DNS 记录
    imxieke
        10
    imxieke  
       2016-09-19 12:11:54 +08:00
    @sneezry 对了 验证 NS 记录后 是只能申请当前 单个域名 还是 当前包含子域名 无需再次验证 可以直接申请证书?
    sneezry
        11
    sneezry  
    OP
       2016-09-19 12:32:17 +08:00 via Android
    @imxieke 只能申请当前单域名,子域名需要单独验证签发
    yidinghe
        12
    yidinghe  
       2016-09-19 18:26:56 +08:00 via Android
    非常感谢楼主的工作,但是不支持别名和通配符的话,实用性恐怕还是有些欠缺,哪怕是用在我个人域名上。继续关注,看楼主什么时候实现这两样了。
    msg7086
        13
    msg7086  
       2016-09-19 20:40:14 +08:00
    说句实话,不支持野卡的 Let's decrypt ,最吸引人的还是别名。
    不支持别名全程 SNI 真的还不如去签 COMODO ,一年免费的。
    sneezry
        14
    sneezry  
    OP
       2016-09-19 21:05:04 +08:00 via iPad
    @msg7086 没感觉使用别名和签多个证书有什么本质区别啊,一个域名从添加认证到最后签发证书应该不会超过五分钟,部署的时候应该也是不同域名不同的配置,还没想过别名的重要性,所以当时把支持别名排在最后了,能展开说一下么
    sneezry
        15
    sneezry  
    OP
       2016-09-19 21:07:01 +08:00 via iPad
    @yidinghe 通配符是指泛证书么?这个 Let's Encrypt 不支持,所以还没办法实现,除非以后搞个 StartSSL 的 Agent
    msg7086
        16
    msg7086  
       2016-09-20 05:10:48 +08:00
    @sneezry 这么说吧,比如我有 3 个二级域名, example.com ssl.example.com www.example.com 需要加证书。如果你签 3 个证书,就等于我配置文件要写 3 段。但是如果是多域名证书的话,一段配置就够了。
    如果不是二级域而是顶级域别名,比如说 bilibili.com bilibili.tv bili.tv ,也是多域名证书更方便。
    sneezry
        17
    sneezry  
    OP
       2016-09-20 09:21:39 +08:00 via Android
    @msg7086 我自己在配置的时候用的 Nginx 的虚拟主机,还是要为每个域名做单独配置,即使只有一个证书,还是要分别指向同一个证书。不过昨晚我已经把别名的支持做好了。
    xshwy
        18
    xshwy  
       2016-09-20 15:41:50 +08:00
    刚刚获取了,提示稍后发到邮箱
    请问一下楼主
    1. 一般是多久发到邮箱呢?
    2. 需要定时更新嘛?
    sneezry
        19
    sneezry  
    OP
       2016-09-20 16:26:21 +08:00
    @xshwy 别用 QQ 邮箱接收了, QQ 邮箱对 Mailgun 封得厉害,我看了下邮件被拦截了,你可以尝试以下操作:

    1 、用非 QQ 邮箱注册新用户
    2 、登陆 QQ 邮箱用户后通过域名列表中的“ Transfer ”将该域名推送到新用户中
    3 、登陆新注册的用户,然后点击“ Re-issue ”进行重新签发

    如果邮件发送正常,一分钟之内就会收到,否则就是被拦截了

    之后我会在页面上对使用 QQ 邮箱注册的用户发出提醒
    xshwy
        20
    xshwy  
       2016-09-20 21:17:38 +08:00
    @sneezry 我说呢~等了好久都没来,刚刚换 163 的成功收到了,小站测试也成功啦,非常感谢楼主~~
    另外请教一下,这个 ssl 有效期是多久呀~~
    msg7086
        21
    msg7086  
       2016-09-20 21:49:43 +08:00
    @sneezry 同一个域名的多个别名可以写在一个配置段里。
    sneezry
        22
    sneezry  
    OP
       2016-09-20 22:46:39 +08:00
    @xshwy 90 天,在 dashboard 里是可以看到签发日期和有效日期的
    caizixian
        23
    caizixian  
       2016-09-21 12:52:17 +08:00
    邮件了一些个人想法

    😀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3096 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:23 · PVG 21:23 · LAX 05:23 · JFK 08:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.