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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值