【一分钟】阿里云3个月ssl证书过期解决方案,一行命令,一分钟轻松搞定SSL证书自动续期

一、🔥httpsok-v1.11.0支持OSS证书,CDN 证书,域名证书 自动部署

介绍

httpsok 是一个便捷的 HTTPS 证书自动续签工具,专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业,稳定安全可靠

在这里插入图片描述

支持

  • nginx
  • nginx(docker 容器)
  • 宝塔
    -…

特点

  • 一行命令,一分钟轻松搞定SSL证书自动续期
  • 目前免费(大家放心使用)

在这里插入图片描述

二、废话不多说上教程:

1、场景

  • docker
  • nginx (docker)容器
  • 阿里云 ECS (linux)

2、实战

Stage 1:ssh登录阿里云 ECS

在这里插入图片描述

Stage 2:进入nginx (docker)容器
# nginx-java为nginx容器名
docker exec -it nginx-java /bin/bash

在这里插入图片描述

Stage 3:执行如下指令

nginx 如果非容器,则不需要进入容器,且不需要安装curl

Stage 3-1:更新 apt-get
apt-get update
Stage 3-2:安装 curl
 apt-get install curl
Stage 3-3:登录httpsok官网获取部署指令

在这里插入图片描述

在这里插入图片描述

Stage 3-4:在nginx容器中执行部署指令
 curl -s https://get.httpsok.com | bash -s xxxxxxxxxxxxxx

在这里插入图片描述

Stage 4:进入官网,查看nginx证书信息
Stage 5:添加DNS解析

我这里域名是阿里云购买,操作如下,其它平台操作见附录

Stage 5-1:httpsOk官网查看需要添加的DNS解析

在这里插入图片描述

Stage 5-2:阿里云域名管理中添加解析

在这里插入图片描述

Stage 5-3:刷新httpsOK官网查看是否添加成功

在这里插入图片描述

Stage 6:验证是否完成

至此,SSL证书会在过期的前15天自动续期

三、附录

v1.11.0 版本新特性

  • ✅修复某些情况下无法识别主配置文件nginx.conf问题

  • ✅修复某些证书出现的签名算法解析错误问题(RSA,ECC)

  • ✅修复多级通配符域名、混合通配符域名证书申请问题

  • ✅修复申请时,域名被通配符域名冗余包含,导致申请失败问题

  • ✅重构DNS快速检测功能

  • ✅完善TLD库

文档

特性

  • ⚡️ 简单高效 一行命令,一分钟轻松搞定SSL证书自动续签

  • ✅ 自动检测 无需关心nginx配置,自动识别证书配置,适合老旧系统、复杂配置的生产环境

  • ✅ 泛解析、多域名、多服务器 轻松搞定

  • ✅ 证书监控 对于即将失效的证书,提供公众号推送提醒

  • ✅ 兼容性好 兼容主流的Linux系统 Debain CentOS Ubuntu TencentOS

  • ✅ 支持手动申请 支持手动申请证书,方便部署CDN、OSS等场景。

OSS证书部署

一、进入自动部署

进入 自动部署页面 ,选择OSS标签,点击 新建部署任务 按钮

image-20240509113752674

二、新建部署任务

  • ① 选择云厂商

  • ② 配置 SecretIdSecretKey

  • ③ 选择域名

  • ④ DNS验证通过后,点击确定

image-20240509114350997

点击确认后,任务进入 待部署 状态,点击 部署 按钮

image-20240509114544740

三、部署成功

部署成功后,可以看到状态发生了变化,证书有效期也有了。

image-20240509114616965

查看证书

访问OSS地址,可以看到证书信息已经生效了。

有些平台证书可能会有缓存,可以关闭浏览器后再试试。

image-20240509115326881

四、结束

恭喜您,OSS证书部署就是这么简单。

如果您觉得 httpsok 对您带来了帮助,还请动动 您的发财小手 给项目点点 star

也可以把我们的工具,分享给您的小伙伴

非常感谢大家的认可和支持🙏🙏🙏。

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的程序。 您可以使用Go语言中的"crypto/tls"和"time"包来实现该功能。以下是一个示例程序: ```go package main import ( "crypto/tls" "fmt" "net" "net/http" "time" ) const ( dingTalkWebhook = "https://oapi.dingtalk.com/robot/send?access_token=XXXXX" // 替换成您的钉钉Webhook地址 expirationDays = 30 // SSL证书过期时间少于30天时进行提醒 ) func main() { // 需要检查的域名和端口号 domain := "www.example.com" port := "443" // 创建TLS连接 conn, err := tls.Dial("tcp", net.JoinHostPort(domain, port), &tls.Config{}) if err != nil { fmt.Printf("Failed to connect to %s:%s - %s\n", domain, port, err) return } defer conn.Close() // 获取证书 state := conn.ConnectionState() cert := state.PeerCertificates[0] // 检查证书过期时间 days := int(cert.NotAfter.Sub(time.Now()).Hours() / 24) if days <= expirationDays { // 发送钉钉提醒 sendDingTalk(fmt.Sprintf("The SSL certificate for %s will expire in %d days!", domain, days)) } } func sendDingTalk(message string) { // 构造POST请求 data := []byte(fmt.Sprintf(`{"msgtype":"text","text":{"content":"%s"}}`, message)) req, err := http.NewRequest("POST", dingTalkWebhook, bytes.NewBuffer(data)) if err != nil { fmt.Printf("Failed to create HTTP request - %s\n", err) return } req.Header.Set("Content-Type", "application/json") // 发送POST请求 client := &http.Client{Timeout: time.Second * 5} resp, err := client.Do(req) if err != nil { fmt.Printf("Failed to send HTTP request - %s\n", err) return } defer resp.Body.Close() // 处理响应 if resp.StatusCode != http.StatusOK { fmt.Printf("Failed to send message to DingTalk - %s\n", resp.Status) return } } ``` 您需要将`dingTalkWebhook`常量替换为您的钉钉机器人Webhook地址。当证书过期时间少于30天时,程序将发送一条包含消息的POST请求到钉钉机器人Webhook地址。请注意,该程序只检查单个域名和端口号的证书。如果您需要检查多个域名和端口号的证书,请将该程序放入一个循环中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值