前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ssl证书自动续签

Ssl证书自动续签

作者头像
mikelLam
发布2022-10-31 11:36:53
1.1K0
发布2022-10-31 11:36:53
举报
文章被收录于专栏:Kubernetes 与 Devops 干货分享

自签证书

生成CA证书私钥

代码语言:shell
复制
openssl genrsa -out ca.key 4096

生成CA证书

代码语言:shell
复制
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=IT/OU=Docker/CN=domain.com" \
 -key ca.key \
 -out ca.crt

生成私钥

代码语言:shell
复制
openssl genrsa -out domain.com.key 4096

生成证书签名请求

代码语言:shell
复制
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=IT/OU=Docker/CN=domain.com" \
    -key domain.com.key \
    -out domain.com.csr

生成一个x509 v3扩展文件

代码语言:shell
复制
cat > v3.ext <<- 'EOF'
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=127.0.0.1
DNS.2=domain.com
DNS.3=localhost
EOF

使用该v3.ext文件为服务器主机生成证书

代码语言:shell
复制
openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in domain.com.csr \
    -out domain.com.crt

自动续期

安装证书安装脚本

代码语言:shell
复制
# 直接下载
curl https://get.acme.sh | sh
# clone 仓库
git clone https://github.com/acmesh-official/acme.sh.git
alias acme.sh=~/.acme.sh/acme.sh

证书签发

代码语言:shell
复制
# 使用http方式
acme.sh --issue -d plyx.site -d *.plyx.site -w /var/www/html/plyx.site
# 使用dns 方式
acme.sh --issue -d *.plyx.site -d plyx.site --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please # 添加A记录
dig -t txt  _acme-challenge.clsn.io @8.8.8.8 # 验证证书
acme.sh --renew  -d *.plyx.site -d plyx.site --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please # 生成证书
# 使用dns api方式
api 参考文档 https://github.com/Neilpang/acme.sh/tree/master/dnsapi
export Ali_Key=""
export Ali_Secret=""
acme.sh --issue --dns dns_ali -d plyx.site -d *.plyx.site
acme.sh --issue --dns dns_ali -d plyx.site -d *.plyx.site --keylength ec-256
说明参数的含义:
  • –issue是 acme.sh 脚本用来颁发证书的指令;
  • -d是–domain的简称,其后面须填写已备案的域名;
  • -w 是–webroot的简称,其后面须填写网站的根目录
代码语言:shell
复制
# 查看证书
acme.sh --list
# 删除证书
acme.sh --remove -d plyx.site [--ecc]

安装证书

生成的证书放在了/root/.acme.sh/plyx.site目录,因为这是 acme.sh 脚本的内部使用目录,而且目录结构可能会变化,所以我们不能让 Nginx 的配置文件直接读取该目录下的证书文件。

代码语言:shell
复制
acme.sh  --install-cert -d 01member.com \
         --key-file /etc/nginx/conf.d/ssl/key.pem \
         --fullchain-file /etc/nginx/conf.d/ssl/cert.pem \
         --reloadcmd "service nginx force-reload"

合并证书

代码语言:shell
复制
cat fullchain.cer plyx.site.key > haproxy.crt

更新证书

代码语言:shell
复制
acme.sh --renew -d plyx.site --force
acme.sh --renew -d plyx.site --force --ecc

检查域名过期时间

代码语言:shell
复制
echo |openssl s_client -servername plyx.site  -connect plyx.site:443 2>/dev/null | openssl x509 -noout -dates|awk -F '=' '/notAfter/{print $2}'

检查证书过期时间

代码语言:shell
复制
openssl x509 -in cert.pem -noout -dates

更新脚本

升级到最新版

代码语言:shell
复制
acme.sh --upgrade

自动更新

代码语言:shell
复制
# 开启自动更新
acme.sh  --upgrade  --auto-upgrade
# 关闭自动更新
acme.sh  --upgrade  --auto-upgrade 0

定时任务更新证书

代码语言:shell
复制
55 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自签证书
    • 生成CA证书私钥
      • 生成CA证书
        • 生成私钥
          • 生成证书签名请求
            • 生成一个x509 v3扩展文件
              • 使用该v3.ext文件为服务器主机生成证书
              • 自动续期
                • 安装证书安装脚本
                  • 证书签发
                    • 说明参数的含义:
                  • 安装证书
                    • 合并证书
                      • 更新证书
                        • 检查域名过期时间
                          • 检查证书过期时间
                            • 更新脚本
                              • 定时任务更新证书
                              相关产品与服务
                              ICP备案
                              在中华人民共和国境内从事互联网信息服务的网站或APP主办者,应当依法履行备案手续。腾讯云为您提供高效便捷的 ICP 备案服务。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档