前言

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

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

https证书一键自动续期,帮你解放90天限制的更多相关文章

  1. 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt

    让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt 为什么要用HTTPS  网站没有使用HTTPS的时候,浏览器一般会报不安全,而且在别人访问这个网站的时候,很有可 ...

  2. Kubelet 证书如何自动续期

    一.问题现象和原因 Kubernetes 日志错误 当 Kubernetes 集群日志中出现 certificate has expired or is not yet valid 错误信息时,表明证 ...

  3. 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期

    https://blog.csdn.net/xs18952904/article/details/79262646 https://freessl.org/

  4. Apache环境服务器配置Let's Encrypt免费SSL证书及自动续期方法

    如今越来越多的网站开始使用SSL证书,实现HTTPS网址形式,如果我们是英文网站更需要用到这样格式的HTTPS网址,因为根据谷歌搜索结果提示到如果用到SSL证书的在同等条件下排名结果是有靠前可能的.我 ...

  5. Ubuntu里let's encrypt通配符证书的自动续期更新

    环境与需求: Ubuntu云服务器上,已经做好了ssl证书的免费申请,但是证书的期限是3个月,3个月到期后必须重新申请或者更新.由于k8s集群里的服务一直在使用证书,每三个月人工更新太麻烦,所以想要配 ...

  6. php 品牌全车零件订购平台( 带采集数据 及 账号自动登陆【已绕过https证书加密】,php源码 ,QQ: 876635409 )

    php捷豹路虎 品牌全车零件订购平台  ( 带采集数据 及 账号自动登陆[已绕过https证书加密],php源码 ,QQ: 876635409 [由于咨询用户太多,请备注:汽车配件]) 一.php+m ...

  7. [转]部署Let’s Encrypt免费SSL证书&&自动续期

    最近公司网站要用https,从自己摸索到找到国内的免费证书到选购正式的收费证书,最后老板说:太贵!不要.一脸懵逼的听老板提到Let's Encrypt证书,没办法,用呗.之前是有一些了解,国外发布的一 ...

  8. 怎样查看SSL证书的有效期?自动续期是否生效?

    前面一篇教程教大家如何能够把网站的 HTTPS 的 SSL 证书自动续期.料神米课的学员动手能力都很强,已经很多都成功把证书续期了.但怎么看证书续期是否成功了呢? 使用火狐 firefox 浏览器就可 ...

  9. 使用acme.sh申请&自动续期LetsEncrypt免费SSL证书(转)

    一.简介 LetsEncrypt是一个免费.自动.开放的证书颁发机构.acme.sh 实现了 acme 协议, 可以从 LetsEncrypt 生成免费的证书. 本文介绍如何使用acme.sh来签发并 ...

  10. LNMP安装Let’s Encrypt 免费SSL证书方法:自动安装与手动配置Nginx

    前几天介绍了最新StartSSL免费SSL申请与配置,很多人看到部落介绍SSL证书安装时总是推荐了OneinStack,因为OneinStack提供了一键添加和配置Let's Encrypt 免费SS ...

随机推荐

  1. 题解:CF1537E2 Erase and Extend (Hard Version)

    CF1537E2 Erase and Extend 题解 分析 通过观察题目,可以证明结果一定是由多次前缀复制得来的. 题目要求你进行删和复制的操作,与其交替着操作,不如直接先删到最优的前缀再进行复制 ...

  2. 2.搭建K8S集群前置知识

    搭建K8S集群 搭建k8s环境平台规划 单master集群 单个master节点,然后管理多个node节点 多master集群 多个master节点,管理多个node节点,同时中间多了一个负载均衡的过 ...

  3. ARC121D 1 or 2

    ARC121D 1 or 2 诈骗题. 思路 吃一个糖的操作可以看做是和一个 \(a_i\) 为 0 的糖一起吃. 可以枚举有多少个糖单独吃来确定要增加多少个 0. 问题变为每次吃两颗糖. 根据人类直 ...

  4. mysql 触发器阻止不合理数据插入

    今天看到有人问如何判断处理有不符合的数据阻止插入.比如这个数据只能在90天内存在一条,如果有了就拒绝插入. 当然大家都说用代码判断,判断一下90天内是否有数据,有就拒绝. 我这里说一个使用触发器的思路 ...

  5. Nuxt.js 应用中的 webpack:compile 事件钩子

    title: Nuxt.js 应用中的 webpack:compile 事件钩子 date: 2024/11/22 updated: 2024/11/22 author: cmdragon excer ...

  6. VAE变分自编码器Keras实现

    变分自编码器(variational autoencoder, VAE)是一种生成模型,训练模型分为编码器和解码器两部分. 编码器将输入样本映射为某个低维分布,这个低维分布通常是不同维度之间相互独立的 ...

  7. MySQL之使用pt-online-schema-change在线修改大表结构

    原因: 最近公司上一个功能, 需要为其中某个表中新增字段,但是考虑到线上数据已经达到300w+的级别,同时使用的mysql的版本是5.7而非8.0,这会导致新增字段的时候,对全表进行加锁,直到添加完毕 ...

  8. 终于解决了.net在线客服系统总是被360误报的问题(对软件进行数字签名)

    升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放.开源.共享.努力打造 .net 社区的一款优秀开源产品. 背景 我在业余时间开发的这个客服系统, ...

  9. vue composition api 访问 原vue2中 this.$refs

    1 <el-form class="user-form" ref="ruleFormRef" :model="userForm" st ...

  10. 树莓派4B 微雪7寸触摸屏 双屏 触摸屏校正

    树莓派4B+微雪7寸触摸屏+PC显示器,以触摸屏位主显示,PC显示器扩展,这时会有触摸不准的情况. 通过观察可以发现触摸被放大到了整个屏幕,即触摸屏+PC显示器. 1. 通过查看2个屏幕分辨率和位置, ...