V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
sneezry

SSL.md 支持 REST API 续签证书了

  •  
  •   sneezry ·
    Sneezry · Nov 27, 2016 · 5072 views
    This topic created in 3437 days ago, the information mentioned may be changed or developed.
    前情概要

    写了个 Let's Encrypt 的在线签发及管理工具 https://www.v2ex.com/t/301332

    写了个简易教程 https://www.v2ex.com/t/307128

    ---

    现在在 SSL.md 签发证书和传统证书签发体验相近,更容易被多数用户所接受,不过由于 Let's Encrypt 证书有效期是 90 天,比部分传统证书有效期短,手动续签比较麻烦。

    为了让续签变得容易,同时能让多数用户使用门槛降到最低, SSL.md 现在支持 REST API 续签证书。

    登录 https://ssl.md 后,在右上角头像左侧会看到一串颜色淡得快看不见的身份标识字符<identify>,通过访问 https://ssl.md/api/<domain>/<identify>; 来续签证书。

    如果续签成功,返回一个 JSON 数据 data , data['cert']就是最新的证书,记得把里面的“\n ”替换成换行后保存使用。

    Supplement 1  ·  Nov 27, 2016
    根据 #18 楼的建议,已经改为访问 api 直接下载证书了。
    Supplement 2  ·  Nov 28, 2016
    如果距离证书过期时间超过 20 天,访问 API 得到的是旧证书,如果确实希望重新签发需要到 dashboard 手动 re-issue 。
    50 replies    2017-09-05 01:14:41 +08:00
    kuretru
        1
    kuretru  
       Nov 27, 2016
    续签的时候需要保持 DNS 记录吗
    sneezry
        2
    sneezry  
    OP
       Nov 27, 2016
    @kuretru 需要的,因为 ACME 续签的时候还是需要验证域名所有权的
    belain
        3
    belain  
       Nov 27, 2016 via Android
    这个可以有
    yangff
        4
    yangff  
       Nov 27, 2016
    续签不改变密钥对?
    sneezry
        5
    sneezry  
    OP
       Nov 27, 2016
    @yangff 如果想改变 csr 可以到后台更新, csr 有必须续签的时候更新吗,如果有必要我把这个功能加上
    lslqtz
        6
    lslqtz  
       Nov 27, 2016 via iPhone
    @sneezry dns 记录不会变么,不错,要是支持定时任务就更好了。
    @yangff 不改变密钥 key 是可以的...
    qq915458022
        7
    qq915458022  
       Nov 27, 2016 via iPhone
    如果有响应式就更好啦 楼主棒棒哒🎉
    sneezry
        8
    sneezry  
    OP
       Nov 27, 2016
    @lslqtz 是这样的,验证域名的时候需要把_acme-challenage 的 NS 记录指向 acme.ssl.md ,所以 txt 记录也是 SSL.md 管理的
    sneezry
        9
    sneezry  
    OP
       Nov 27, 2016
    @qq915458022 因为这是一个一年也用不上 10 次的工具,所以我的懒癌犯了(捂脸
    yangff
        10
    yangff  
       Nov 27, 2016
    @sneezry 并不是必须,基本上没必要每次更新, RSA-2048 对大多数人来说也算很安全了……
    mdzz
        11
    mdzz  
       Nov 27, 2016
    建议增加一个 api 直接返回 data["cert"] ,用 http status code 表示是否成功,这样的话写 cron job 直接一个 wget 或者 curl 就 OK 了(虽然这样一点也不 RESTful
    sneezry
        12
    sneezry  
    OP
       Nov 27, 2016
    @mdzz 可以啊,等我稍微改一下
    sneezry
        13
    sneezry  
    OP
       Nov 27, 2016
    @mdzz 已经改好了
    lslqtz
        14
    lslqtz  
       Nov 28, 2016
    @sneezry _acme-challenage 的 NS 记录指向 acme.ssl.md
    这里的 acme.ssl.md 给的是其下的子域名还是直接指向?
    如果是直接指向的话,感觉多个人会有冲突欸。。
    lslqtz
        15
    lslqtz  
       Nov 28, 2016
    还有个问题,我在 ssl.md 注册和登录都没提示直接被 302 了。
    lslqtz
        16
    lslqtz  
       Nov 28, 2016
    看起来是因为过短的密码,但没有任何提示。
    lslqtz
        17
    lslqtz  
       Nov 28, 2016
    再问个问题, ssl.md 的头像是使用 V2EX 的,但是没法更改头像。
    可以考虑用 V2EX API 来根据 V2 上的用户头像,设置用户名来设置对应的头像。
    也可以考虑提供上传头像 /自定义头像 URL 功能,这样默认的看着有点不舒服 :D
    sneezry
        18
    sneezry  
    OP
       Nov 28, 2016
    @lslqtz _acme-challenge.foo.example.com. IN NS acme.ssl.md. 就是把 NS 指向 acme.ssl.mdacme.ssl.md 是一个 NS 服务器,是 NS 记录,不要脑补出 CNAME 哈。

    如果邮箱之前注册过,再次注册会提示 Sign up failed ,注册的时候有错误信息么,要不把你邮箱前三个字母告诉我我到数据库里看一下
    sneezry
        19
    sneezry  
    OP
       Nov 28, 2016
    @lslqtz 头像其实是 avatar ,用的 v2 的代理,因为国内被墙了
    lslqtz
        20
    lslqtz  
       Nov 28, 2016
    @sneezry 过短的密码注册和登录时会被 302 到这个页面,没有任何错误信息。
    avatar 好评,不过多个邮箱的表示 :-v
    还是习惯用用户名登录 www
    sneezry
        21
    sneezry  
    OP
       Nov 28, 2016
    @lslqtz 可能提示不明显 Orz

    lslqtz
        22
    lslqtz  
       Nov 28, 2016
    Request URL:https://ssl.md/join
    Request Method:POST
    Status Code:302 Moved Temporarily

    Form Data
    email:[email protected]
    password:us.md
    lslqtz
        23
    lslqtz  
       Nov 28, 2016
    还是说是因为有特殊字符么 233
    忘加一句了 Location:https://ssl.md/join
    sneezry
        24
    sneezry  
    OP
       Nov 28, 2016
    @lslqtz 哈哈,是这样的, Error Message 写进 Session 里了,跳转之后的页面会 show 出 Session 里的错误信息并移除掉 Session 。
    lslqtz
        25
    lslqtz  
       Nov 28, 2016
    @sneezry session 不太了解,但是我这么操作后似乎没有 session...
    一直开游戏,记得调一下或者关掉声音再进。。
    http://o9o3m83f2.bkt.clouddn.com/o_1b2ja3as11e2r4djq1j1jsl1893a.mp4
    sneezry
        26
    sneezry  
    OP
       Nov 28, 2016
    @lslqtz O.O 好大的一只 Bug
    lslqtz
        27
    lslqtz  
       Nov 28, 2016
    其实我更在意的是机子是放在哪里的,我的电信访问很快,也很稳定。。访问其他的机子我这边是 300ms...
    lslqtz
        28
    lslqtz  
       Nov 28, 2016
    @sneezry 首页的注册可以考虑一下,如果数据库里已有字段就登录,没有就注册(或发送注册邮件) :D
    sneezry
        29
    sneezry  
    OP
       Nov 28, 2016
    @lslqtz 你是来要我的 aff 的么?是的,一定是的!

    https://clientarea.ramnode.com/aff.php?aff=3289

    lslqtz
        30
    lslqtz  
       Nov 28, 2016
    @sneezry $15 一年 128M 的那台咋样,我准备走 aff 来一台,挂几个自己的站顺便做个游戏代理公开 :v
    sneezry
        31
    sneezry  
    OP
       Nov 28, 2016
    @lslqtz 我就是在上面随便买个便宜的玩玩,别的我也没用过,不敢说,公司一个月白给 150 刀的 Azure 用到爽翻天的,哈哈
    lslqtz
        32
    lslqtz  
       Nov 28, 2016
    @sneezry 算了,我也搞一台 512M 的好了,话说付款方式是啥 :^'
    sneezry
        33
    sneezry  
    OP
       Nov 28, 2016 via iPhone
    @lslqtz 我直接上的信用卡,开了自动续费,反正也不贵,嘿嘿嘿
    lslqtz
        34
    lslqtz  
       Nov 28, 2016
    @sneezry 不想用自己的信用卡注册,虚拟信用卡不太好找。。
    支持 pp 么
    twm
        35
    twm  
       Nov 28, 2016
    这网站干哈的
    sneezry
        36
    sneezry  
    OP
       Nov 28, 2016 via iPhone
    @twm 这网站帮着签免费 SSL 证书的😄
    missdeer
        37
    missdeer  
       Nov 28, 2016
    像家庭宽带,开 443 封 80 端口的,有解吗?
    fhefh
        38
    fhefh  
       Nov 28, 2016
    这个不错 先 mark
    aru
        39
    aru  
       Nov 28, 2016
    @missdeer
    acme.sh -tls 参数可以自己签,也可以用域名验证方式来签
    我家里电信宽带两种方式都用了( 3322 的动态域名和自己的域名)
    missdeer
        40
    missdeer  
       Nov 28, 2016 via Android
    @aru 谢谢,研究一下去
    lslqtz
        41
    lslqtz  
       Dec 3, 2016
    @sneezry

    5 天前创建的。。子域名不能验证?
    lslqtz
        42
    lslqtz  
       Dec 3, 2016
    不是支持微博图床么。。为什么没内嵌。。
    sneezry
        43
    sneezry  
    OP
       Dec 3, 2016 via iPhone
    @lslqtz 是 NS ,不是 CNAME 。看来我真得考虑一下 CNAME 的方式了,很多人会自动脑补成 CNAME
    lslqtz
        44
    lslqtz  
       Dec 3, 2016
    @sneezry 对,是我看错了。。
    然而我的 DNS 不支持 NS 。
    sneezry
        45
    sneezry  
    OP
       Dec 3, 2016   ❤️ 1
    @lslqtz 现在已经支持 CNAME 了,登录后重新进行验证,页面会提示如何操作的
    onesez
        46
    onesez  
       Feb 7, 2017 via iPhone
    楼主使用的是哪儿的 API ,求提供
    sneezry
        47
    sneezry  
    OP
       Feb 8, 2017
    @onesez 用的就是 Let's Encrypt 的 ACME 啊,没啥神秘的~~~
    sneezry
        48
    sneezry  
    OP
       Feb 8, 2017
    love4taylor
        49
    love4taylor  
    PRO
       Sep 4, 2017
    你家证书过期了 233333
    sneezry
        50
    sneezry  
    OP
       Sep 5, 2017
    @Love4Taylor 果然……不知道为啥自动化脚本没跑起来……已经 renew 了……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4715 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 10:06 · PVG 18:06 · LAX 03:06 · JFK 06:06
    ♥ Do have faith in what you're doing.