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

Letsencrypt+certbot为域名免费配置ssl

1、基础概念

Let’s Encrypt 是一个提供免费 SSL/TLS 证书的认证机构,它的目标是让互联网上的通信更加安全,特别是普及 HTTPS。通过 Let’s Encrypt 提供的证书,网站可以使用加密连接,保护用户的数据传输。

Certbot 是一个由电子前沿基金会(EFF)开发的开源工具,它可以自动化获取和更新 Let’s Encrypt 证书的过程。简而言之,Certbot 是用来与 Let’s Encrypt 的服务进行交互,帮助网站管理员轻松地申请、安装和更新 SSL 证书。

前提条件:

  1. 首先,配置自己服务器的域名,有一个可以公共访问的域名,然后关联配置到服务器,这部分此文不做赘述。
  2. 确认适合自己系统的具体命令,以下步骤以 Ubuntu 的系统为例。

2、安装 Certbot 插件

先更新系统的包管理器

sudo apt update

确保你的服务器上已经安装并运行 Nginx:
检查 Nginx 是否安装:

nginx -v

如果未安装,可以使用以下命令安装:

sudo apt install nginx

启动 Nginx 并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

安装 Certbot 的 Nginx 插件
对于基于 Debian/Ubuntu 的系统,需要安装 python3-certbot-nginx 包:

sudo apt install python3-certbot-nginx

重新运行 Certbot
插件安装完成后,重新运行 Certbot 以获取并配置 SSL 证书:

sudo certbot --nginx

按照提示完成证书的获取和配置过程。Certbot 会自动检测你的 Nginx 配置,并为指定的域名安装 SSL 证书。
在这里插入图片描述

3、自动续期

虽然 Certbot 通常会自动配置续期,手动测试续期过程以确保一切正常:

sudo certbot renew --dry-run

如果没有错误提示,说明自动续期配置正确。

此外,既然定时器已设置为自动执行,如果希望验证是否能够按时触发,可以等到预定的时间,或者手动触发服务来测试:这将立即触发
certbot 执行证书更新操作。

sudo systemctl start certbot.service

检查 certbot 的服务状态:

sudo systemctl status certbot.timer

在这里插入图片描述

查看当前证书的状态以及是否即将过期:

sudo certbot certificates

在这里插入图片描述

4、手动续期

运行命令

sudo certbot renew

等待自动续期完成即可

在这里插入图片描述

5、开放80端口、确保nginx配置

否则就会报错

  • 确保服务器可以访问端口 80 和 443:
sudo ufw allow 'Nginx Full'

想要 Certbot 自动续期成功,需要开放80端口 443端口
这是因为certbot 在进行域名验证时通常使用 HTTP 或 HTTPS 服务来验证所有权。如果服务器上没有正确运行 HTTP (80端口) 或 HTTPS (443端口) 服务,验证过程也会失败。

Failed to renew certificate xxx.com with error: Some challenges have failed.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
All renewals failed. The following certificates could not be renewed:
  /etc/letsencrypt/live/xxxx.com/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 renew failure(s), 0 parse failure(s)
  • 检查 Nginx 配置是否正确:
    在某些情况下,Nginx 的配置文件可能有误,导致 Certbot 无法正确配置 SSL。可以使用以下命令测试 Nginx 配置:
sudo nginx -t

如果有错误,请根据提示修正配置文件。

相关文章:

  • 《Keras 3 :具有类似 U-Net 架构的图像分割》
  • 自定义RAG评估数据流
  • kotlin的onFailure: () -> Unit
  • 像素绽放PixelBloom(AiPPT.com) 联合创始人蒲世林:创新者的窘境就是新物种的机会
  • iOS 获取设备占用内存
  • C++17 数学特殊函数:探索标准库中的强大工具
  • 赶上AI的大潮:在VSCode中使用DeepSeek编程的极简方法
  • 解锁养生秘籍,拥抱健康生活
  • 网工项目理论1.9 广域网设计
  • sorted() 的 key 必须是可调用对象(callable),它会被 sorted() 调用,返回排序依据
  • 【Excel笔记_6】条件格式和自定义格式设置表中数值超过100保留1位,超过1000保留0位,低于100为默认
  • Linux上部署Java项目-通过sh脚本启动
  • 机器学习——支持向量机
  • 深度学习实战——卷积神经网络CNN在图片识别中的应用以及原理
  • 如何在 Mac 上下载安装仙剑游戏仙剑世界?可以通过IPA砸壳包安装非常简单
  • Dify搭建旅行规划助手
  • 基于时变天气网络的无人机群配送路径优化
  • .NET + Vue3 的前后端项目在IIS的发布
  • WordPress“更新失败,响应不是有效的JSON响应”问题的修复
  • 基于Open Babel将SDF转为MOL2格式
  • 五问舆论漩涡中的“协和‘4+4’模式”:是否公平,如何合格?
  • 结束北京队与总决赛十年之痒的,为何会是一度被群嘲的许利民
  • 包揽金银!王宗源、郑九源夺得跳水世界杯总决赛男子3米板冠亚军
  • 国羽3比0横扫日本晋级苏迪曼杯决赛,将战韩国与印尼胜者
  • 马克思主义理论研究教学名师系列访谈|薛念文:回应时代课题,才能彰显强大生命力
  • 挑大梁!一季度北上广等7省份进出口占外贸总值四分之三