爱意满满的作品展示区。
neilp

acme.sh 非常简单的 从 letsencrypt 生成 ssl 证书的中文说明

  •  
  •   neilp ·
    Neilpang · Sep 29, 2016 · 10276 views
    This topic created in 3690 days ago, the information mentioned may be changed or developed.
    acme.sh 是一个纯 unix shell 兼容的 脚本, 实现了 acme 协议, 可以从 letsencrypt 自动生成并更新 ssl 证书.

    我刚刚写了一个中文说明, 希望能帮到大家, 为大家节约时间:

    https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E
    36 replies  •  2016-12-23 09:35:48 +08:00
    majinjing3
    majinjing3
    Sep 29, 2016 via Android
    1
    支持一个,一直在使用,哈哈~不错不错
    neilp
    neilp
    OP
    Sep 29, 2016
    2
    acrisliu
    acrisliu
    Sep 29, 2016 via Android
    3
    有一点好像 readme 里面没说:安装 ECC 证书需要带上--ecc 参数,貌似是新版本才要求这样的。
    neilp
    neilp
    OP
    Sep 29, 2016
    4
    @acrisliu 是的, 在 安装证书时, 如果是 ecc 证书, 需要 加上 `--ecc` 参数, 这是为了让 rsa 证书和 ecdsa 证书共存, 如果没有 `--ecc`, 系统无法区分 要使用 rsa 证书还是 ecdsa 证书.
    msg7086
    msg7086
    Sep 29, 2016
    5
    大佬_(:з」∠)_

    签发 ecc&rsa 双证书有什么更方便的方法吗?
    我现在都是手动改 conf 配置文件来伪装成两个网站去 renew 的。
    neilp
    neilp
    OP
    Sep 30, 2016 via iPhone
    6
    @msg7086 为什么要伪装 直接签两个不就好了?
    msg7086
    msg7086
    Sep 30, 2016
    7
    [Thu Sep 29 12:16:36 EDT 2016] Skip, Next renewal time is

    不伪装的话咋签第二个?
    neilp
    neilp
    OP
    Sep 30, 2016 via iPhone
    8
    @msg7086

    第二个加参数

    acme.sh ....... -k ec-256
    msg7086
    msg7086
    Sep 30, 2016
    9
    @neilp ↑ 这就是我想要的回答。多谢!
    msg7086
    msg7086
    Sep 30, 2016
    10
    ↑ 我又想了一下,应该是我之前用两个月前的版本试的时候还没支持吧?
    那时候我用 -k ec-384 结果直接 Skip 了。

    之前那个 Skip verification 的问题也是因为没有更新到最新版本。
    Showfom
    Showfom
    PRO
    Sep 30, 2016 via iPhone
    11
    @msg7086 只用 ecc is 就行了,不要去考虑老掉牙的浏览器和设备咯哈哈
    paranoiagu
    paranoiagu
    Sep 30, 2016 via Android
    12
    收藏了
    isbase
    isbase
    Sep 30, 2016 via Android
    13
    没有放首页,新用户发现的几率很小
    wql
    wql
    Sep 30, 2016 via Android
    14
    感谢楼主!一直在用你的程序签证书!
    isCyan
    isCyan
    Oct 1, 2016 via Android
    15
    之前就用了,特别赞!!
    mritd
    mritd
    Oct 1, 2016
    16
    问个小问题,这个自动续期的时候 要不要验证 80 端口?

    我在创建的时候 是基于 nginx 的 docker 镜像创建,创建时 nginx 还没启动,但创建成功后 nginx 就启动了 ,如果自动续期占用 80 的话就会和 nginx 冲突
    neilp
    neilp
    OP
    Oct 1, 2016
    17
    @mritd 理论上每次生成证书都要验证所有权。 而验证所有权的方式有很多种, 你说的属于 standalone 模式, 80 端口必须可用。 如果你已经有 nginx 占用了 80 端口, 可以使用 webroot 模式。 直接在网站根目录防止一个文件验证所有权。 还有一种用 dns 验证所有权,需要在 dns 上添加一条 txt 记录验证所有权。

    鉴于你的情况, 建议你用 webroot 模式。

    ···
    acme.sh --issue -d mydomain.com --webroot /home/wwwroot/mydomain.com
    ···

    https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E
    mritd
    mritd
    Oct 2, 2016 via iPhone
    18
    @neilp 已经解决了,情况有点复杂……我写了个脚本,要生成时临时启动一个 nginx ,然后挂载目录验证,生成后再启动 compocompose 的容器就行了……最后我发现有 godagodaddy 的支持……泪奔😂😂😂
    liul85
    liul85
    Oct 6, 2016
    19
    收藏了,多谢楼主
    GPU
    GPU
    Oct 18, 2016
    20
    您好. 请问我更换了 VPS 之后,是否把整个 .acme.sh 目录复制到新 vps,然后添加一条 crontab 就可以了.
    neilp
    neilp
    OP
    Oct 18, 2016
    21
    @GPU
    是的, 复制过去之后, 在重新安装一次, 它会自动找到之前的文件, 并自动添加 crontab
    GPU
    GPU
    Oct 18, 2016
    22
    @neilp 谢谢 。明白了。
    GPU
    GPU
    Oct 19, 2016
    23
    @neilp

    root@debian:~/.acme.sh# ./acme.sh --install
    [Wed Oct 19 13:57:56 CST 2016] Installing to /root/.acme.sh
    cp: ‘ acme.sh ’ and ‘/root/.acme.sh/acme.sh ’ are the same file
    [Wed Oct 19 13:57:56 CST 2016] Install failed, can not copy acme.sh
    neilp
    neilp
    OP
    Oct 19, 2016
    24
    @GPU
    重新 install 的时候, 同一个文件不能拷贝.


    直接在线安装: curl https://get.acme.sh| sh

    就好了.
    yylzcom
    yylzcom
    Oct 19, 2016
    25
    能不能加上自动合并中级证书的功能:
    https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem
    neilp
    neilp
    OP
    Oct 19, 2016❤️2
    26
    @yylzcom
    我们早就支持自动合并了.
    在证书目录下有个 fullchain.cer
    chdon
    chdon
    Oct 20, 2016
    27
    @neilp 工具非常好用。 fullchain.cer 已经包含网站证书和中间证书了吗,手机提示过期不被信任。。。
    neilp
    neilp
    OP
    Oct 21, 2016
    28
    @chdon 是.
    xshwy
    xshwy
    Oct 23, 2016 via iPhone
    29
    阿里云有免费证书
    fhefh
    fhefh
    Oct 24, 2016
    30
    这个不错 mark
    chdon
    chdon
    Oct 26, 2016
    31
    @neilp 不行的,里面内容就是 ca.cer,命令复制之后就没有。
    neilp
    neilp
    OP
    Oct 27, 2016
    32
    @chdon 不明白你的意思。
    到这里 报 bug https://github.com/Neilpang/acme.sh/issues
    hanyang
    hanyang
    Dec 8, 2016
    33
    @neilp 楼主 我看 crontab 里面的定时任务是每天 00:00 点执行 renew 。为什么文档上说的是 every 60 days ?
    neilp
    neilp
    OP
    Dec 8, 2016
    34
    @hanyang
    每天 0 点是检查所有的证书, 如果哪一个证书到了 60 天了, 就会更新.
    hanyang
    hanyang
    Dec 9, 2016
    35
    @neilp 明白了 谢谢楼主
    teng2017
    teng2017
    Dec 23, 2016
    36
    采用 dns 验证,自动更新证书,是不是需要 dns api
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1884 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 07:20 · PVG 15:20 · LAX 23:20 · JFK 02:20
    ♥ Do have faith in what you're doing.