美文网首页
配置免费证书

配置免费证书

作者: 菜出意料 | 来源:发表于2023-12-08 08:08 被阅读0次

    使用Let's Encrypt颁发免费证书,参考地址:Documentation - Let's Encrypt (letsencrypt.org)

    acme.sh

    github地址 acmesh-official/acme.sh: A pure Unix shell script implementing ACME client protocol (github.com)

    使用docker部署acme.sh

    deploy to docker containers · acmesh-official/acme.sh Wiki (github.com)

    docker run --rm  -itd  \
      -v "$(pwd)/out":/acme.sh  \  # 挂载目录
      --net=host \
      --name=acme.sh \
      -v /var/run/docker.sock:/var/run/docker.sock \  # 挂载宿主机docker环境
      neilpang/acme.sh daemon
    

    生成证书

    由于域名在阿里云购买,因此要使用Ali_Key和Ali_Secret,可以从阿里云创建RAM用户,并授予域名管理的权限

    docker  exec   -e Ali_Key=你的key -e Ali_Secret=你的value  acme.sh --issue -d 你的域名1 -d 你的域名2 --dns dns_ali --server letsencrypt
    

    -d 指定域名,可以多个
    --server指定颁发证书的CA
    --dns 指定dns_ali

    部署域名

    可以通过ssh、docker等多种方式部署证书

    docker exec \
        -e DEPLOY_SSH_USER=root \
        -e DEPLOY_SSH_SERVER="192.168.0.85" \
        -e DEPLOY_SSH_KEYFILE=/etc/nginx/ssl/privkey.pem \
        -e DEPLOY_SSH_FULLCHAIN="/etc/nginx/ssl/fullchain.pem" \
        -e DEPLOY_SSH_REMOTE_CMD="service nginx force-reload" \
        -e DEPLOY_SSH_BACKUP=yes \
        acme.sh --deploy -d 你的域名1  --deploy-hook ssh
    # docker 部署需要给nginx容器打上标签,如sh.acme.autoload.domain=example.com
    docker  exec \
        -e DEPLOY_DOCKER_CONTAINER_LABEL=sh.acme.autoload.domain=example.com \
        -e DEPLOY_DOCKER_CONTAINER_KEY_FILE=/var/certificate/privkey.pem \
        -e DEPLOY_DOCKER_CONTAINER_FULLCHAIN_FILE="/var/certificate/fullchain.pem" \
        -e DEPLOY_DOCKER_CONTAINER_RELOAD_CMD="service nginx force-reload" \
        acme.sh --deploy -d 你的域名1  --deploy-hook docker

    相关文章

      网友评论

          本文标题:配置免费证书

          本文链接:https://www.haomeiwen.com/subject/qaejgdtx.html