专注于前端开发, 追求更好的用户体验, 更好的开发体验 [长沙前端QQ群:234746733]

docker

  • 使用letsencrypt自动生成和续期HTTPS证书

    / 分类: 工具,实践 / No Comments

    相信一些同学注意到了, 本站启用了https, 域名改成了xhl.me, 服务也早就全都改用docker了.
    顺带介绍下之前搞的两个个docker项目: alpine-tengine, docker-backup.

    *本文主要介绍letsencrypt证书的创建和通配符HTTPS证书生成, 还有基于letsencrypt docker镜像实现证书自动续期.

    Let's Encrypt 是一个自动签发免费HTTPS证书的非营利机构, 生成的证书有3个月有效期, 到期可以免费续期.
    Certbot 是 Let's Encrypt 官方推荐的生成证书的客户端工具, 文档.

    使用dnsrobocert生成证书(支持通配符域名证书), 并自动续期

    这个项目, 集成了certbot(证书生成命令行工具), Lexicon(DNS记录修改工具, 主流DNS服务商都支持).
    另外还自带了crontab 定时任务, 只要服务启动, 就会自动续期域名了.

    1. 创建, /etc/dnsrobocert/config.yml, 内容类似这样:
    # https://git.io/JL1cD
    draft: false
    acme:
      email_account: <youremail>
      staging: false
    profiles:
    - name: cloudflare
      provider: cloudflare
      provider_options:
        auth_username: <cloudflare_email>
        auth_token: <cloudflare_token>
    - name: dnspod
      provider: dnspod
      provider_options:
        auth_username: <dnspod_id>
        auth_token: <dnspod_token>
    certificates:
    - domains:
      - "*.xhl.me"
      -  xhl.me
      profile: cloudflare
      # autorestart:
      #   - containers:
      #     - nginx
      autocmd: # 自动重启
        - cmd: nginx -s reload
          containers:
          - nginx
    # - domains:
    #   - "*.test.com"
    #   profile: dnspod
    #   ...
    2. 根据DNS PROVIDER信息验证, 并自动创建和续期证书
    docker run -it --rm --name letsencrypt2 \
      -v /etc/dnsrobocert:/etc/dnsrobocert \
      -v /etc/letsencrypt:/etc/letsencrypt \
      -v /var/run/docker.sock:/var/run/docker.sock \
      adferrand/dnsrobocert

    LEXICON_PROVIDER 主流的DNS服务都支持, 比如:

    查看全文 »