首页 > 其他分享 >https证书一键自动续期,帮你解放90天限制

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

时间:2025-01-16 21:43:00浏览次数:1  
标签:acme 证书 -- 一键 gitee nginx sh https 90

前言

前几天网站证书到期,发觉证书颁发每次只能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")"
}

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

标签:acme,证书,--,一键,gitee,nginx,sh,https,90
From: https://www.cnblogs.com/wenbochang/p/18675803

相关文章

  • HTTPS与VPN:保护互联网用户的不同方法
    HTTPS是什么?HTTPS(超文本传输安全协议)是一种用于网络浏览器与网站之间通信的安全连接协议。它通过TLS(传输层安全)协议来加密用户和站点之间的数据交换,确保信息的安全性和完整性。此外,HTTPS还进行身份验证,以确认双方的真实身份,并确保传输的数据未被篡改。数据加密:HTTPS使用TLS......
  • Debian/Ubuntu 各个版本一键更换国内镜像源
    有时候买了国内的服务器,更新系统或者安装软件速度相当慢,这时候我们可以将系统源一键更换为国内的源,速度就会快很多!!!以下命令复制后,直接在命令行粘贴、回车即可参考地址MirrorZHelpDebian111.备份官方默认源sudocp-a/etc/apt/sources.list/etc/apt/sources.li......
  • 域用户完美执行应用程序.210907
    企业环境中,为了安全起见一般都没有赋予域用户或者企业的PC客户端用户管理员权限。但偶尔会有个别的程序一定需要管理员身份才能执行,如财务某些程序或专业的应用程序。那么如何不赋予用户管理员权限及密码但又可以让用户有权限执行指定的程序呢?下面就介绍几种主流的办法:1,runas命......
  • 906 [CF 1117D] Magic Gems
    //906[CF1117D]MagicGems.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/1046Reziba拥有无限多个魔法宝石,每个魔法宝石的大小为1单元。每个魔法宝石可以被分解为m个普通宝石,每个普通宝石的大小也是1......
  • 【浏览器】录音open失败:浏览器禁止不安全页面录音,可开启https解决..
    谷歌浏览器在浏览器地址栏中输入:chrome://flags/#unsafely-treat-insecure-origin-as-secure启动选项,并且添加你本地的开发地址Edgeedge://flags/#unsafely-treat-insecure-origin-as-secure操作同谷歌火狐浏览器在浏览器地址栏输入:about:config勾选(当我尝试修改底层首......
  • p1908
    Description猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中 ai>ajai​>aj​ 且 i<j......
  • 图像修复(3)| 基于mask操作和图像修复的一键去水印
    前言  上篇文章讲了手动去除水印的方法,下面介绍一下自动化去水印的方法,大体思路是这样子的:使用目标分割模型提取水印mask(本文用的U2net),结合mask和修复神经网络(本文用的MI-GAN)实现一键去除水印老规矩,先上效果图:1.目标分割任务介绍  目标分割(ObjectSegmentat......
  • HTTPS与HTTP:区别及安全性对比
    目录一、基础概念二、安全性对比1.加密传输2.身份验证3.数据完整性4.端口5.浏览器展示方式三、使用场景与性能1.使用场景2.性能开销四、成本与维护五、搜索引擎优化(SEO)六、案例分析七、隐私保护与中间人攻击八、兼容性与开发调试九、政策与合规性十、......
  • 905 路径数量统计
    //905路径数量统计.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/1044给你一张有向图,图中可能存在重边和自环,请求出从点u出发经过恰好k条边后到达点v的通路的条数。由于答案可能很大,请输出答案模109+7......
  • 开启服务器端口(如8990)的操作步骤及注意事项
    开启服务器上的指定端口(如8990)是一项重要的配置任务,它直接影响到应用程序能否正常通信。以下是详细的步骤和注意事项,帮助您顺利完成端口开启操作:确定操作系统类型:首先,确认您的服务器运行的是哪种操作系统(如Linux、Windows)。不同操作系统有不同的防火墙管理和端口配置工具。例如......