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

居然还在使用付费的https证书?

网站的https证书过期了,一直使用阿里云的免费ssl证书,但是现在阿里云调整了策略[1],证书有效期从1年缩短到3个月了,所以我决定放弃阿里云转而使用 Let’s Encrypt[2] 申请免费证书。

简介

Let’s Encrypt 是一家免费、开放、自动化的公益性证书颁发机构(CA), 由互联网安全研究组[3](ISRG)运作,详细介绍可以看这里[4]。

申请证书

按照官方文档[5],对于没有命令行访问权限的网站,比如wordpress、cPanel等,可以通过控制台设置或者申请后手动上传证书;而我的网站服务器托管在阿里云,拥有命令行访问权限,所以直接使用官方推荐的 Certbot[6] ACME 客户端来管理证书,这里详细记录下步骤。

CertBot[7] 文档有详细的安装步骤,我的 ubuntu14 上的步骤如下:

安装 snapd

snap[8] 是linux的应用程序包,可以从其自身的snap store中安装、管理软件,有点类似包管理器如 apt、yum,但是不依赖linux发行版,安全、跨平台且无依赖;而 snapd 则是一个自动管理和维护 snap 的后台服务,它们之间的区别请参阅官方文档[9]。

Ubuntu 16.04LTS版及之上的版本已经集成了snapd,无需再安装了,而我的是 14,所以需要手动安装。

sudo apt update sudo apt install snapd

测试是否安装成功,可以安装官方的 hello-world 程序:

$ snap install hello-world 2024-06-09T16:15:39+08:00 INFO Waiting for automatic snapd restart... hello-world 6.4 from Canonical✓ installed

执行并成功输出信息表示安装成功:

$ hello-world Hello World!

删除 certbot-auto 和任何 Certbot OS 软件包

如果您使用操作系统包管理器(如aptdnfyum安装了任何 Certbot 包,则应在安装 Certbot snap 之前删除它们,以确保运行命令certbot时,将使用 snap,而不是从操作系统包管理器进行安装。执行此操作的确切命令取决于您的操作系统,但常见的示例是sudo apt-get remove certbotsudo dnf remove certbotsudo yum remove certbot

Ubuntu 14上并没有安装certbot-auto:

$ apt-get remove certbot Reading package lists... Done Building dependency tree Reading state information... Done Package 'certbot' is not installed, so not removed …… 0 upgraded, 0 newly installed, 0 to remove and 260 not upgraded.

安装 Certbot

ok,现在可以使用 snap 安装 Certbot 了:

$ snap install --classic certbot certbot 2.11.0 from Certbot Project (certbot-eff✓) installed

然后,做一个软件链接方便执行:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

获取并安装证书

这是最简单的方式,直接执行 certbot 申请证书并自动安装到 nginx:

$ certbot --nginx Saving debug log to /var/log/letsencrypt/letsencrypt.log Enter email address (used for urgent renewal and security notices) ……

这期间会询问多次,主要是输入邮箱地址、同意协议、根据nginx已经配置的域名来选择需要启用https证书的域名等,最后安装成功会输入如下信息:

Congratulations! You have successfully enabled HTTPS on https://hankmo.com, https://bitcoinbook.hankmo.com, https://jason.hankmo.com, and https://jimmy.hankmo.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

如果nginx没有准备好,仍然可以手动获取证书,后续再手动配置:

sudo certbot certonly --nginx

测试自动续订

您系统上的 Certbot 软件包附带一个 cron 作业或 systemd 计时器,可在证书过期之前自动更新您的证书。您不需要再次运行 Certbot,除非您更改配置。您可以通过运行以下命令来测试证书的自动续订:

sudo certbot renew --dry-run

续订 certbot 的命令安装在以下位置之一:

  • /etc/crontab/
  • /etc/cron.*/*
  • systemctl list-timers

    比如我的机器上timer如下:

$ systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES Mon 2024-06-10 05:28:00 CST 12h left Sun 2024-06-09 16:31:32 CST 46min ago snap.certbot.renew.timer snap.certbot.renew.service

检查证书是否已经生效

现在,访问网站,可以看到证书已经生效,说明证书安装成功。

总结

Let's Encryot 是一个免费颁发https证书的组织,它提供了 Certbot 工具方便地为我们申请、安装证书,不过它需要使用 snap 来安装,整个过程其实比较简单,完成后您的网站就可以通过 https 访问了。

参考:

  1. Let's Encrypt 官方文档: https://letsencrypt.org/zh-cn/getting-started/[10]
  2. Certbot 官方文档: https://certbot.eff.org/instructions?ws=nginx&os=ubuntuxenial[11]
  3. snap 官方安装文档: https://snapcraft.io/docs/installing-snapd[12]

引用链接

  • [1] 调整了策略: https://help.aliyun.com/zh/ssl-certificate/product-overview/notice-on-adjustment-of-service-policies-for-free-certificates?spm=0.2020520163.help.dexternal.62d23711Eoxaa5
  • [2] Let’s Encrypt: https://letsencrypt.org/
  • [3] 互联网安全研究组: https://www.abetterinternet.org/
  • [4] 这里: https://letsencrypt.org/zh-cn/about/
  • [5] 官方文档: https://letsencrypt.org/zh-cn/getting-started/
  • [6] Certbot: https://certbot.eff.org/
  • [7] CertBot: https://certbot.eff.org/instructions?ws=nginx&os=ubuntuxenial
  • [8] snap: https://snapcraft.io/docs
  • [9] 官方文档: https://snapcraft.io/about
  • [10] https://letsencrypt.org/zh-cn/getting-started/: https://letsencrypt.org/zh-cn/getting-started/
  • [11] https://certbot.eff.org/instructions?ws=nginx&os=ubuntuxenial: https://certbot.eff.org/instructions?ws=nginx&os=ubuntuxenial
  • [12] https://snapcraft.io/docs/installing-snapd: https://snapcraft.io/docs/installing-snapd
http://www.jsqmd.com/news/505847/

相关文章:

  • OBS Composite Blur:终极模糊特效插件完全指南
  • kafka-在centos7上集群部署
  • 导师推荐!千笔写作工具,多场景适配论文神器 —— 千笔写作工具
  • C++新手必看:如何用双重循环轻松打印三角形(附代码详解)
  • 现在 AI 能帮招投标行业解决什么真实问题?
  • 【学生党进来学习省钱!】2026年最新-分享本人日常省钱羊毛经验
  • 红外火焰传感器原理与MSPM0G3507工程实践
  • 终极免费解决方案:5分钟让Figma界面全面中文化
  • 2026年建议收藏|千笔AI,冠绝行业的一键生成论文工具
  • 立式多级泵实力生产厂家哪家强?聚焦口碑与品质,上海淳特值得关注 - 品牌推荐大师
  • 深度解析Realtek RTW89驱动:WiFi 6/6E/7芯片的Linux内核实现与性能调优实战
  • NetStream版本9模板全解析:如何自定义BGP下一跳统计字段?
  • 保姆级教程:在Ubuntu 20.04上从零部署Point-LIO(适配ROS Noetic)
  • 国内使用 Claude Code 保姆级教程(以MiniMax为例)
  • 一些有用的网站及工具
  • MS1100 VOC气体传感器嵌入式集成与ADC驱动实践
  • 快速回收大润发购物卡,这些技巧你知道吗? - 团团收购物卡回收
  • Qwen-Image惊艳效果展示:RTX4090D上Qwen-VL图像理解真实对话截图集
  • 大润发购物卡怎么回收最划算? - 团团收购物卡回收
  • 从评测看门道:2026年靠谱倒角机供应商怎么选,全自动倒角机/金属倒角机/管材倒角机/精密倒角机,倒角机厂家哪家好 - 品牌推荐师
  • 超链接
  • GitHub汉化插件:让全球最大代码托管平台说中文
  • translategemma-4b-it实战:翻译外文书籍图片,打造个人翻译助手
  • 如何用ObjToSchematic实现3D模型到方块世界的精准转换?解锁创意建筑新可能
  • 零基础游戏定制指南:UndertaleModTool从入门到进阶
  • 进程间通信,Linux命名管道的前世今生
  • 共创力与某机器人公司就CBB管理进行探讨
  • GitHub汉化插件:让GitHub界面秒变中文的完整指南
  • 基于Matlab开发的整车动力系统匹配计算软件:一键匹配输出性能要求,底层代码同时公开
  • LangGraph入门实战:用“把大象装进冰箱”理解Multi-Agent,保姆级代码解析,建议收藏