容器化freessl-acme.sh更新nginx实现https证书自动续期:修订间差异

来自三线的随记
无编辑摘要
第1行: 第1行:
先构建一个 acme.sh 基础镜像
=== 赘述 ===
由于有一定的OS环境洁癖,所以不打算直接在Linux OS环境中直接安装acme.sh,采用容器化的方式安装acme.sh
 
acme.sh官方其实有做好的docker images,但是由于太闲了所以又重新写了一份(班门弄斧)
 
=== 正题 ===
先构建一个带有 acme.sh 基础镜像
  cat <<\EOF > acme.sh.Dockerfile
  cat <<\EOF > acme.sh.Dockerfile
  FROM alpine:3.15.3
  FROM alpine:3.15.3
第6行: 第12行:
     curl -s <nowiki>https://get.acme.sh</nowiki> | sh -s [email protected]
     curl -s <nowiki>https://get.acme.sh</nowiki> | sh -s [email protected]
  WORKDIR /root/.acme.sh
  WORKDIR /root/.acme.sh
ENTRYPOINT ["/usr/sbin/crond", "-f", "-S","/dev/stdout"]
  EOF
  EOF


  docker build -f acme.sh.Dockerfile -t sanxian/freessl_acme.sh_base:v1 .
  docker build -f acme.sh.Dockerfile -t san3xian/freessl_acme.sh:v2 .
<nowiki/>https://freessl.cn/acme-deploy 登陆并添加域名,获取token
然后到<nowiki/>https://freessl.cn/acme-deploy 注册登陆
 
并在该站点的 [https://freessl.cn/acme-deploy acme页面中]添加域名,完成域名的DCV预检测(即配置CNAME,域名解析状态可以在这里查询: https://myssl.com/dns_check.html)
 
获取token (即****/directory/ 后的字符串)


构建域名专属acme镜像用于签发证书,安装证书以及触发 容器化或者节点直接部署运行的nginx reload(按需修改该容器pid mode和reloadcmd即可)
接着根据实际需求构建域名专属acme镜像用于签发证书,安装证书以及触发 容器化或者节点直接部署运行的nginx reload(按需修改该容器pid mode和reloadcmd即可)
  FROM sanxian/freessl_acme.sh_base:v1
  FROM san3xian/freessl_acme.sh:v2
  ARG  acme_token="your_token"
ENV  acme_domain="your_domain"
  ARG  acme_token="your_token" \
      acme_domain="your_domain"
  RUN /root/.acme.sh/acme.sh --issue -d ${acme_domain}  --dns dns_dp \
  RUN /root/.acme.sh/acme.sh --issue -d ${acme_domain}  --dns dns_dp \
     --server <nowiki>https://acme.freessl.cn/v2/DV90/directory/${acme_token}</nowiki> && \
     --server <nowiki>https://acme.freessl.cn/v2/DV90/directory/${acme_token}</nowiki> && \
     mkdir -pv /cert
     mkdir -pv /cert && \
ENTRYPOINT ["/bin/sh", "-c", "/root/.acme.sh/acme.sh --install-cert \
    /root/.acme.sh/acme.sh --install-cert -d ${acme_domain} \
            -d ${acme_domain} \
    --key-file /certs/${acme_domain}_key.pem \
            --key-file /certs/${acme_domain}_key.pem \
    --fullchain-file /certs/${acme_domain}_cert.pem \
            --fullchain-file /certs/${acme_domain}_cert.pem \
    --reloadcmd "/bin/kill -s HUP 1"
            --reloadcmd \"/bin/kill -s HUP 1\" && sleep infinity"]


acme.sh配置参考: https://blog.freessl.cn/acme-quick-start/
acme.sh配置参考: https://blog.freessl.cn/acme-quick-start/

2022年4月5日 (二) 00:51的版本

赘述

由于有一定的OS环境洁癖,所以不打算直接在Linux OS环境中直接安装acme.sh,采用容器化的方式安装acme.sh

acme.sh官方其实有做好的docker images,但是由于太闲了所以又重新写了一份(班门弄斧)

正题

先构建一个带有 acme.sh 基础镜像

cat <<\EOF > acme.sh.Dockerfile
FROM alpine:3.15.3
RUN apk --no-cache add curl wget openssl && \
    rm -rf /var/cache/apk && \
    curl -s https://get.acme.sh | sh -s [email protected]
WORKDIR /root/.acme.sh
ENTRYPOINT ["/usr/sbin/crond", "-f", "-S","/dev/stdout"]
EOF
docker build -f acme.sh.Dockerfile -t san3xian/freessl_acme.sh:v2 .

然后到https://freessl.cn/acme-deploy 注册登陆

并在该站点的 acme页面中添加域名,完成域名的DCV预检测(即配置CNAME,域名解析状态可以在这里查询: https://myssl.com/dns_check.html)

获取token (即****/directory/ 后的字符串)

接着根据实际需求构建域名专属acme镜像用于签发证书,安装证书以及触发 容器化或者节点直接部署运行的nginx reload(按需修改该容器pid mode和reloadcmd即可)

FROM san3xian/freessl_acme.sh:v2

ARG  acme_token="your_token" \
     acme_domain="your_domain"
RUN /root/.acme.sh/acme.sh --issue -d ${acme_domain}  --dns dns_dp \
    --server https://acme.freessl.cn/v2/DV90/directory/${acme_token} && \
    mkdir -pv /cert && \
    /root/.acme.sh/acme.sh --install-cert -d ${acme_domain} \
    --key-file /certs/${acme_domain}_key.pem \
    --fullchain-file /certs/${acme_domain}_cert.pem \
    --reloadcmd "/bin/kill -s HUP 1"

acme.sh配置参考: https://blog.freessl.cn/acme-quick-start/


# todo