一招直接变永久💡,证书📑 90 天够谁用❗

前言🔔

大家好,我是聪👦,最近啊我的证书📑也到期了,每次到期我都要上服务商管理端来瞎捣鼓一番来一波续费,之前免费证书时间挺长的还好说,现在证书 90 天就到期,这谁受的了啊,机缘巧合下,我在 github 上面看到了一款自动续期神器,我身边的朋友也在用🔊 acme.sh,中文说明地址🔍:github.com/acmesh-offi… ,喜欢探索的朋友可以自己跟着文档来操作一波,像我就喜欢图文直接抄!想要这样的朋友跟着我下面的教程来吧。

安装流程🔧

1、安装 acme.sh

先看看官方文档📑!easy 一条命令搞定是吧!(还真踩坑),文档如下🔽:

image-20250114100812055.png

好一条命令搞定,但是我的服务器在国内啊(京东云),难顶卡住不动了,就是下面这样的情况:

image-20250114100927399.png

怎么办呢,我请求了它的 sh 脚本 get.acme.sh ,看到了如下图:

image-20250114101057449.png

早说啊!我卡死了一分钟!直接访问地址:github.com/acmesh-offi…

看到了国内的命令,命令如下🔽:

 
bash
代码解读
复制代码
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com

2、生成证书

先看看官方文档📑,文档如下🔽:

image-20250114101404784.png

我这里选择了 DNS 验证,我个人感觉比较方便:

image-20250114101728967.png

先找到你的厂商 API 点进去 github.com/acmesh-offi…,这里以京东云为例🌰:

image-20250114101831662.png

找到关键字 jd 然后点进去:

就可以看见关键步骤了!如下图:

image-20250114101913254.png

image-20250114102003761.png

  • 第二步将他们的 key、secret 设置为环境变量
 
shell
代码解读
复制代码
export JD_ACCESS_KEY_ID="<key id>"
export JD_ACCESS_KEY_SECRET="<secret>"
  • 第三部生成证书(这里的 example.com 改成你自己的域名即可 像我的是 codebug.icu)
 
shell
代码解读
复制代码
./acme.sh --issue --dns dns_jd  -d example.com -d *.example.com
  • 在此期间等待执行就好了,可能会一点时间,因为还要等待证书生效

image-20250114102343933.png

3、复制证书

先看看官方文档📑,文档如下🔽:

image-20250114102745994.png

我这边是 nginx 所以使用官方命令 nginx 示例就行(由于我的 nginx 使用 docker 安装,则后面的重启命令改为 docker restart nginx 即可),命令如下:

 
css
代码解读
复制代码
acme.sh --install-cert -d example.com \
--key-file       /path/to/keyfile/in/nginx/key.pem  \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd     "docker restart nginx"

这里说明下:

  • /path/to/certfile/in/apache 就是你想要把证书放到哪个路径下面,直接用默认或者你自己改都可以,后续配置nginx 的证书时要改成这个路径。
  • reloadcmd 非常重要。证书会自动申请续签,但是如果没有正确的 reloadcmd 命令,证书可能无法被重新应用到 Apache 或者 Nginx,因为配置没有被重载。

4、修改配置 nginx 的 config 文件

这步官方文档似乎没有提及,但我修改完配置文件然后重启就生效了,大家可以参考一下:

主要是改动 ssl_certificate、ssl_certificate_key 两个地方为你的配置文件地址

 
ini
代码解读
复制代码
server {
    listen       80;
    listen  [::]:80;
    server_name  codebug.icu;
​
    rewrite ^(.*) https://$server_name$1 permanent;
}
​
server {
    listen       443 ssl;
    server_name  codebug.icu;
​
    ssl_certificate      /path/to/keyfile/in/nginx/cert.pem;
    ssl_certificate_key  /path/to/keyfile/in/nginx/key.pem;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
​
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
​
    location / {
         root /usr/share/nginx/html;
         index index.html;
    }
​
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

修改完记得重启 nginx 哦,我的重启命令是 docker restart nginx

(扩展📜)更新证书

目前证书每 60 天自动更新,你无需任何操作。

但是你也可以强制续签证书:

 
css
代码解读
复制代码
acme.sh --renew -d example.com --force

展示成果🚀

image-20250114104534050.png

最后💡

执行完上述操作,你的证书已经会每 60 天自动更新,也就是永久证书了,妈妈再也不用担心我的证书过期啦!每天一个小技巧 GET !我是聪 希望可以跟大家一起学习,我的 Github:github.com/lhccong 如果里面有你感兴趣的项目不妨给我点个星星⭐和关注🔥,未来我还会持续写新的好玩的小项目。

一招直接变永久💡,证书📑 90 天够谁用❗最近啊我的证书📑也到期了,每次到期我都要上服务商管理端来瞎捣鼓一番来一波 - 掘金

Certeasy - 证书自动化 | 一站式证书服务 · 自动签发 · 自动部署 · 到期监控

主页 | OpenWrite

posted @   CharyGao  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
点击右上角即可分享
微信分享提示