https证书一键自动续期,帮你解放90天限制

news/2025/1/16 21:40:52/文章来源:https://www.cnblogs.com/wenbochang/p/18675803

前言

前几天网站证书到期,发觉证书颁发每次只能90天有效期,这谁能忍受,于是乎发觉网上有免费的一键续期脚本,真正解放我们的双手。项目如下acme.sh。

期间由于""的原因,踩了很多的坑,此文记录一下踩坑的过程,同时也帮助我们"墙内"的程序员,不需要踩不必要的坑。

1、安装acme.sh脚本

官网教程如下,但你发觉,会一直clone失败,因为“墙内”链接github是不通的

所以项目很贴心的给我们推荐了国内的gitee链接如下 (大坑)

但是你在后面几个命令,一推报错,原因竟然是 gitee作者已经好久不维护了,只维护github社区,也就是gitee已经落后github 两年之久了,缺失了非常非常多的文件,自然后面执行命令就会报错了

所以大家千万不要用官方文档提供的gitee链接。所以大家可以用自己的gitee账号,同步一下github 这个仓库,然后clone 自己仓库下的最新仓库,我同步的仓库提供给大家,大家可以直接clone下载使用 acme.sh - gitee

所以完整的安装命令如下

git clone https://gitee.com/wenber/acme.sh   // 可以换成你自己的gitee仓库
cd acme.sh
./acme.sh --install -m my@example.com    //  这个是邮件,可以随便填写

2、生成证书

请大家使用官网提供的 自动验证DNS API 方式,不要使用手动方式。

点击更详细的dns api用法,具体看你是哪个服务商。举个例子,我是腾讯云服务商,我选择腾讯云的说明,如果你是阿里云,请选择阿里云的说明文档

以我的域名gdufe888.top 腾讯云服务商为例。

  1. 获取 api token秘钥

  1. 将秘钥写进linux环境变量上面,并且source强制生效一下
export Tencent_SecretId="<Your SecretId>"
export Tencent_SecretKey="<Your SecretKey>"
  1. 申请证书, 这一步如果报错请回到 “安装acme.sh脚本” 重新安装
acme.sh --issue --dns dns_tencent -d gdufe888.top -d *.gdufe888.top

3、复制证书

这一步也是官网的坑。生成的文件是在 gdufe888.top_ecc文件夹下面,而不是在gdufe888.top文件下面,如果命令必须加上 --ecc,强制使用gdufe888.top_ecc文件

/root/work/acme.sh/acme.sh --install-cert -d gdufe888.top --ecc \    
--key-file       /usr/local/nginx/key.pem  \        // 文件存放的位置
--fullchain-file /usr/local/nginx/cert.pem \        // 文件存放的位置
--reloadcmd     "/usr/local/nginx/sbin/nginx -s reload"

4、修改nginx ssl文件路径

第三步执行完毕之后,你会在/usr/local/nginx看到两个文件,key.pem & cert.pem。这时候修改nginx.conf文件

ssl_certificate /usr/local/nginx/cert.pem;
ssl_certificate_key /usr/local/nginx/key.pem;

然后重启/usr/local/nginx/sbin/nginx -s reload,你重新进入网站你就会发觉,证书更新了

同时linux有一个crontab -l 命令,每天早上9.54去检测证书是否过期,然后给你自动执行更新

最后

执行完以上操作,你会发现,脚本每天早上会去检测证书是否会过期。证书默认90天,如果小于30天有效期,他就会去更新,所以完全不用担心证书会过期了

# Calculate the next renew time
_calculate_renew_time() {_d="$1"_savedomainconf "$_d"_currentTime=$(date -u "+%s")_renewTime=$(($_currentTime + 60 * 60 * 24 * 30))_debug "_renewTime='$_renewTime'"_savedomainconf "Le_NextRenewTime" "$_renewTime"_savedomainconf "Le_NextRenewTimeStr" "$(date -u -d "@$_renewTime" "+%Y-%m-%d %H:%M:%S UTC")"
}

这个脚本本来非常简单,但由于“墙”的原因,导致遇到了很多坑,难点,给自己一个记录,也给大家一个参考,谢谢大家

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/870309.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对rpc长连接与短连接的思考

RPC项目中长连接和短连接各有优劣,长连接适用于少量客户端,提高效率;短连接则更适合大量客户端,避免服务器过载。结合L4和L7负载均衡,合理选择连接方式,提升系统性能和稳定性。对rpc长连接与短连接的思考 对于rpc项目,在接受大佬指导的时候曾问过对于长连接和短连接是如…

【Windows攻防】通过代码研究空字节和无文件方式注册表隐藏技术

这篇文章收录于《取证实录》第四季中。 注册表隐藏技术通常用于恶意软件、后门程序或攻击者企图在系统中保持隐蔽,绕过安全检查和防御系统。 常见的隐藏技术有:使用非法字符隐藏注册表项(如PlugX、TDL4/Alureon(Rootkit))、利用默认键值(空字符串)隐藏(如Adwind RAT)…

DVWA靶场学习

暴力破解Brute Force low 输入密码就正常抓包放字典破解得了uploading-image-528180.png medium 同样的操作发现响应速度变慢了,但是还是能暴力破解,不多说了。 uploading-image-408161.png 部分源码解读 $user = $_GET[username]; $user = ((isset($GLOBALS["___mysqli…

推荐几个不错的 Linux 服务器管理工具

前言 选择一款好的 Linux 服务器管理工具能够极大地提高运维效率,保障业务连续性。今天大姚给大家分享3款不错的 Linux 服务器管理工具,希望可以帮助到有需要的同学。 1Panel 1Panel是新一代的 Linux 服务器运维管理面板,旨在通过现代化的 Web 界面帮助用户轻松管理 Linux 服…

学习进度笔记⑩

Tensorflow线性回归 源代码:import tensorflow as tfimport numpy as npimport matplotlib.pyplot as pltimport osos.environ["CUDA_VISIBLE_DEVICES"]="0"#设置训练参数,learning_rate=0.01,training_epochs=1000,display_step=50learning_rate=0.01…

学习进度笔记⑨

tensorflow基本操作(类似numpy) 源代码import tensorflow as tf import os os.environ["CUDA_VISIBLE_DEVICES"]="0" #构造计算图,创建两个常量节点a,b,值分别为2,3 a=tf.constant(2) b=tf.constant(3) #创建一个Session会话对象,调用run方法,运行…

利用AI大模型实现个性化视频配音

最近,作者决定拍摄短视频分享AI技术的应用,并遇到了配音问题。由于家中环境嘈杂且设备不够专业,作者尝试了机器配音,但效果不佳。作者转而想到AI大模型支持语音识别,于是开始寻找语音合成模型。最终在阿里云百炼平台上找到了通义千问-语音合成CosyVoice大模型,多个音色都…

【取证工具】Magnet AXIOM中文绿色版(更新8.4)

Magnet AXIOM取证工具介绍 Magnet AXIOM 是一款功能强大的数字取证工具,专为法律执行人员、调查员和安全专家设计,用于从各种数字设备中提取、分析和报告证据。AXIOM 提供了全面的取证支持,能够从电脑、移动设备、云端服务以及物联网设备中收集并分析数据。多平台支持 Magne…

介绍1个简单好用的英文文本翻转网站,关键还免费不用登录

输入英文,会 生成对应的翻转、反向、镜像、𝕆𝕦𝕥𝕝𝕚𝕟𝕖 𝔽𝕠𝕟𝕥、𝓒𝓾𝓻𝓼𝓲𝓿𝓮 𝓛𝓮𝓽𝓽𝓮𝓻𝓼的文本可以用于生成密码,聊天时发消息,猜字符的场景,欢迎使用和访问,简单免费,无需登录 比如你想她啦,不好意思说…

[Babel] Intro Babel - 01 Introduction

Babel介绍 Babel 是一个编译器,主要用于将最新的 JavaScript 代码转化为向后兼容的代码,以便在老版本的浏览器或环境中运行。 例如,你可能在开发时使用了 ES6、ES7 或者更高级的 JavaScript 特性,但是有些浏览器可能并不支持这些新特性,这时就可以用 Babel 来将代码转化为…

Babel Intro Babel - 01 Introduction

Babel介绍 Babel 是一个编译器,主要用于将最新的 JavaScript 代码转化为向后兼容的代码,以便在老版本的浏览器或环境中运行。 例如,你可能在开发时使用了 ES6、ES7 或者更高级的 JavaScript 特性,但是有些浏览器可能并不支持这些新特性,这时就可以用 Babel 来将代码转化为…

unordered_map-STL容器

时间复杂度和空间复杂度