当前位置: 首页 > news >正文

SSL 证书 | 免费获取与自动续期全攻略

前言

随着互联网的不断发展,网站的安全性越来越受到人们的关注。

SSL证书 作为一种保障网站安全的重要手段,已经成为了许多网站的必备配置。

以前阿里云每个账号能生成二十个期限 1 年的免费 SSL 证书,一直用,还挺香,证书快过期的时间还有邮件提醒。但今年,阿里云的免费 SSL 证书变成了 3 个月,而且加短信、邮件提醒还要收费。

这让一直用免费证书的人怎么接受?

所以开始找替代方案。

果然,功夫不负有心人,在 Github 上找到一个工具:Cerbot。

Certbot 是 Let’s Encrypt 官方提供的一个用于申请和配置 SSL 证书的工具。

免费,证书来源靠谱,且自动续期,完美。

本文主要分享 Ubuntu20.04 云原生系统环境下的部署。

准备工作

1. 准备一台云服务器

这里测试用 Ubuntu20.04。

2. 服务器安全组开放 80 和 443 端口

在配置 Let’s Encrypt SSL 证书之前,需要确保服务器的80和443端口已经打开。

这两个端口分别是 HTTP 和 HTTPS 的默认端口,是 SSL 证书配置的必要条件。

3. 准备需要 SSL 证书加密的域名

注意:云服务在国内的话一定要先将域名备案。

4. 将域名解析到服务器公网 IP

如果主域名 和 www 子域名对应的两个域名都要自动配置 SSL 证书,需要把 @ 和 www 都解析到服务器的公网 IP。

安装 Cerbot

在 Ubuntu 服务器上,可以通过以下命令安装 Certbot:

sudo apt update
sudo pip3 install --upgrade pip setuptools
sudo pip3 install --upgrade requests_toolbelt urllib3 
sudo apt install certbot python3-certbot-nginx

安装好 Certbot 后,就可以通过以下命令获取 Let’s Encrypt 的 SSL 证书:

sudo certbot --nginx -d example.com -d www.example.top

这个示例中,-d 指证书要包含的域名。

这里测试证书包含了 example.com、www.example.top 两个域名。

执行这个命令后,也会自动生成自动更新任务。

自动任务由 systemd 的定时器管理,不是 cron,如下检查:

root@iZf8z5b1hu0l3j5h8hw261Z:/etc/nginx/conf.d# systemctl list-timers | grep certbot 
Fri 2024-08-02 02:48:17 CST 12h left n/a n/a certbot.timer certbot.service

检查是否安装正常

检查自动续期是否正确设置,并且工作正常,响应如下:

root@iZf8z5b1hu0l3j5h8hw261Z:/etc/nginx/conf.d# sudo certbot renew --dry-run 
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Processing /etc/letsencrypt/renewal/pokenote.top.conf 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Simulating renewal of an existing certificate for pokenote.top and www.pokenote.top 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Congratulations, all simulated renewals succeeded: 
/etc/letsencrypt/live/pokenote.top/fullchain.pem (success) 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 贝壳面试:什么是回表?什么是索引下推?
  • 华为-2017-测试工程师笔试试卷
  • 【网络】UDP协议的简单使用
  • Python实现读取Excel数据详细教学版
  • [环境配置]ubuntu20.04安装后wifi有图标但是搜不到热点解决方法
  • 安防监控视频平台LntonAIServer视频智能分析平台新增视频质量诊断功能
  • AF高可用性-主主透明模式/主主虚拟网线
  • 编译 ffmpeg 以支持AVS格式视频解码与解码
  • [Python] 从0到1实现一个简单的数字图像识别大模型
  • H5漂流瓶社交系统源码
  • 肖扬老师好书《微权力下的项目管理(第3版)》读书笔记1
  • kubelet 探针
  • 14.1 为什么说k8s中监控更复杂了
  • 营养作用的对象是有区别的 第八篇
  • 2025年25届新文出炉:如何打造Java SpringBoot Vue个性化课程推荐系统?
  • SegmentFault for Android 3.0 发布
  • 【Amaple教程】5. 插件
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • C++入门教程(10):for 语句
  • CentOS7简单部署NFS
  • co.js - 让异步代码同步化
  • CSS实用技巧
  • docker python 配置
  • extjs4学习之配置
  • Java编程基础24——递归练习
  • Mac转Windows的拯救指南
  • PHP的Ev教程三(Periodic watcher)
  • python学习笔记 - ThreadLocal
  • Python学习笔记 字符串拼接
  • React-Native - 收藏集 - 掘金
  • Redash本地开发环境搭建
  • Spark学习笔记之相关记录
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 搭建gitbook 和 访问权限认证
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 聊聊flink的BlobWriter
  • 前端性能优化——回流与重绘
  • 携程小程序初体验
  • 译有关态射的一切
  • 用Visual Studio开发以太坊智能合约
  • ​数据结构之初始二叉树(3)
  • #etcd#安装时出错
  • (152)时序收敛--->(02)时序收敛二
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (AngularJS)Angular 控制器之间通信初探
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (含笔试题)深度解析数据在内存中的存储
  • (排序详解之 堆排序)
  • (三)终结任务
  • (正则)提取页面里的img标签
  • (转)shell调试方法
  • (转)程序员疫苗:代码注入