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

certbot 安装、使用教程,快速申请免费的SSL证书!

为了在网站上启用 HTTPS,我们需要从证书颁发机构(CA)获取证书(一种文件)。 市面上获取证书的方式还是挺多的,这次主要给大家介绍一个我平时比较常用的一种免费的方式:cerbot

操作环境

Ubuntu 22.04

Nginx

使用教程

1,安装Certbot客户端

sudo apt update sudo apt install certbot

安装过程我就不放截图了,没什么特别的点,输入电子邮件地址,确认服务条款,一路确认即可。

2,获取免费证书

获取方式有好几种,我个人比较常用的是 standalone 和 nginx,几乎可以覆盖 99% 的使用场景了,区别就是要不要停 80 端口的占用。大家看情况选一个用就行了,具体如下:

2.1 standalone 模式

这是最简单的,如果你有子域名,就 -d 跟在后面。比如

certbot certonly --standalone -d example.com -d www.example.com

example.com换成你的域名即可。比如域名为 haha.com 那就是:

certbot certonly --standalone -d haha.com

正常情况:如果顺利,证书和私钥会生成在这。就可以到下一步了。

2.2 nginx 模式

上面的方法很显然有个问题,那就是nginx 得停掉。如果是生产环境,肯定是不能接受的。certbot也提供了个插件,nginx。

安装:

apt update apt install -y python3-certbot-nginx

然后执行:

certbot plugins

看到nginx就OK了,然后我们执行生成证书命令:

certbot certonly --nginx -d example.com

同理,有子域名就接着 -d www.example.com。

example.com 换成你的域名即可。比如域名为 haha.com ,然后有个子域名 ab.haha.com ,那就是 :

certbot certonly --nginx -d haha.com -d a.haha.com

我以我的 vmeta.space 和 www.vmeta.space 为例:

2.3 异常情况

如果没有成功,按我遇到的情况是有两种:

1. 第一种是报错什么 80端口被占用之类的。这种就只要把占用80端口的东西停了即可,我这边是nginx占用了。

systemctl stop nginx

然后再去生成证书就可以了。

记得重启nginx :

systemctl start nginx

2. 第二种是 报错 Connection refused 啥的(因为是临时想起来写的,所以现在也没有截图)

这时候你要检查一下,你的域名是不是解析到当前服务器。要用域名解析到的那台当前服务器搞这个。然后同样再执行生成证书命令就可以了。

两种模式都可以,最终看到Successfully就好了。然后记下证书位置。

3. 第三种是403。

这种情况有两种可能,

1,是如果你域名刚刚解析到某台服务器,或者子域名刚解析一条记录,那需要等个10来分钟再弄,等DNS同步。

2,是域名备案还没过。这个就是直接访问 http://你的域名,比如阿里云的就是这样:

其他厂商也同理。

3,验证证书

那申请了证书之后,我们可以验证一下证书:

openssl x509 -in /etc/letsencrypt/live/vmeta.space/fullchain.pem \ -noout -text | grep -A1 "Subject Alternative Name"

-in 后面改成你的证书的路径就好了。运行之后如下:

可以看到DNS里面包含了我的vmeta域名+www.。说明OK了。

如果你申请了多个子域名,在一个证书内也可以看到多个:

4,配置Nginx开启HTTPS

现在我们需要在nginx配置一下。

找到你的nginx配置文件 nginx.conf,如果你是 apt 安装的 nginx,

那一般是在 /etc/nginx/nginx.conf

配置如下:配一下证书和私钥的位置。当然 你挪到其他地方也是可以的,记得对上位置即可。

server { listen 443 ssl http2; server_name jinmo-coder.cn www.jinmo-coder.cn; # 证书 ssl_certificate /etc/letsencrypt/live/jinmo-coder.cn/fullchain.pem; # 私钥 ssl_certificate_key /etc/letsencrypt/live/jinmo-coder.cn/privkey.pem; location / { root /var/lib/jenkins/workspace/codecabin/.vuepress/dist; index index.html index.htm; } }

5,定时刷新证书(可选)

​因为证书的有效期为90天,所以我们需要让这个证书自动去更新,通过执行以下命令,自动检查系统内的证书,并且自动更新这些证书。certbot提供了刷新证书的命令:

certbot renew --dry-run

注意一下,这个证书的更新是按着你之前的申请方式来的。你可以通过这个命令来查询你原先是如何申请的:

grep authenticator /etc/letsencrypt/renewal/域名.conf

如果你是 standalone,那么后续重新申请它也会用 standalone再申请一次。上面也提到了,这种方式80端口不能被占用。所以两个办法:

  • 一个是你在certbot renew 的时候再关闭并重启一下nginx。
  • 另一个就是你用nginx的方式再申请一遍这个域名的证书就好了。

然后说回重新申请证书,同样的你可以选择每过一段时间来执行一下。

也可以搞个定时任务Cron:

  1. Cron 服务命令

    # 查看服务状态 sudo service cron status # 开启服务 sudo service cron start

    检查服务状态,没有启用就开启服务

  2. 修改cron配置

    crontab -e

    第一次使用要选择编辑工具 我们选择2。然后在文件的尾部添加需要的定时任务

  3. # 每隔 两个月的 凌晨 2:15 执行 更新操作
    15 2 * */2 * certbot renew

  4. # 检查定时任务是否生效 crontab -l

但是这里面可能会有点问题,就是上面说到的80端口被占用那个问题。那也可以选择执行脚本:

写个脚本:

vim /root/renew_cert.sh

内容可以如下:

#!/bin/bash
systemctl stop nginx # 停止 Nginx
certbot renew # 更新证书
systemctl start nginx # 启动 Nginx

赋予执行权限:

chmod +x /root/renew_cert.sh

上面第三步的renew就改成:

15 2 * */2 * /root/renew_cert.sh

http://www.jsqmd.com/news/1367375/

相关文章:

  • 2026上海艺术类专升本培训机构全指南:小班制画室与对口院校辅导选购推荐 - 资讯综合
  • LG数字艺术画廊加入“可爱的小树”元素,足以让人将电视连上网吗?
  • 最强AI写240行代码失败15次:当Fable 5撞上“智力硬墙“,Java工程需要什么样的AI?
  • DataCollection.js索引与映射功能:提升数据访问效率的终极方法
  • SidecarPatcher工作原理揭秘:如何突破Apple设备黑名单限制
  • DevOps Interview Guide中的告警策略:减少噪音的最佳实践
  • 探索企业级智能知识管理平台:WeKnora的文档理解与检索革命
  • 抖音批量下载终极方案:douyin-downloader完整使用指南
  • NCV7692D10R2G,支持 NTC 温度补偿的汽车尾灯线性恒流 IC
  • Feather完整指南:在iOS设备上免越狱安装和管理应用的最佳方法
  • Python量化交易终极指南:3分钟免费获取通达信实时行情数据
  • 完全指南:5分钟掌握Clypra免费开源视频编辑器
  • emhash性能调优秘籍:9个技巧让哈希表在高负载下快2-3倍
  • 钢琴、古董字画、进口真皮家具、大型家电|深圳大件贵重物品搬家风险防控及本地靠谱品牌服务商推荐 - 禧燕搬家
  • Micawber与主流API集成指南:Embedly、Noembed和Iframely全解析
  • 揭秘spreadsheet-reader核心架构:5种文件格式解析器的实现原理
  • Caffe部署指南:如何将训练好的模型应用到生产环境
  • 深入解析kys-cpp:金庸群侠传的现代化C++重构与多战斗系统架构
  • 打破音乐平台枷锁:解锁加密音乐文件的完整解决方案
  • springboot 中学生在线科技作品管理系统
  • 如何快速上手Universal Android Debloater:终极安卓设备优化指南
  • 从安装到精通:dingtalk-openclaw-connector插件的10个必备技巧
  • OBS多平台直播终极指南:obs-multi-rtmp免费同步推流完全教程
  • 2026深圳搬家大件与贵重物品搬运全景指南:从防护标准到合规服务商甄选 - 禧燕搬家
  • Pangolin模型深度解析:革命性RNA剪接位点预测工具如何改变基因组学研究
  • 南阳登报怎么办:线上办理更高效 - luffy+2
  • 三步解锁微信聊天记录的永久保存:从数据碎片到数字记忆的完整指南
  • 为什么顶级C++项目都在用emhash?揭秘SIMD加速的底层原理
  • Bastion容器安全审计实战:使用sudoreplay回放与分析SSH会话日志
  • RPCS3终极指南:如何在PC上免费畅玩PS3游戏的完整方案