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

如何在 Linux 环境下使用 Certbot 自动生成 SSL 证书并部署到 Nginx 服务中

SSL加密技术对网络传输的数据安全非常重要,然而,申请SSL证书却很麻烦,而且免费的SSL证书最多使用3个月,使得广大程序员十分不方面,流程如下

这里风云给大家介绍一个工具,自动帮我们完成该项工作,使用Certbot 工具生成 SSL 证书并自动部署到 Nginx 服务中,主要步骤如下:

安装 Certbot

配置 Nginx

获取和安装 SSL 证书

自动部署 SSL 证书到 Nginx

配置自动续期

1. 安装 Certbot

Certbot 是一个用于自动化获取和管理 SSL 证书的工具,它与 Let's Encrypt 证书颁发机构紧密集成,支持自动化配置 SSL 证书。你可以使用以下命令安装 Certbot:

1.1 安装 Certbot 和 Nginx 插件

首先,确保你的系统包管理器已经更新,然后安装 Certbot 和 Nginx 插件。

对于 Ubuntu/Debian 系统

sudo apt updatesudo apt install certbot python3-certbot-nginx

对于 CentOS/RHEL 系统

sudo yum install epel-releasesudo yum install certbot python3-certbot-nginx

对于 Fedora 系统

sudo dnf install certbot python3-certbot-nginx

安装完成后,你可以使用以下命令来检查 Certbot 是否正确安装:

certbot --version

2. 配置 Nginx

在生成 SSL 证书之前,确保你的 Nginx 配置正确,并且已经指向你的网站根目录。

2.1 配置虚拟主机

编辑 Nginx 配置文件(通常是 /etc/nginx/sites-available/default 或 /etc/nginx/nginx.conf,具体路径可能会有所不同)来配置虚拟主机。假设你的域名是 example.com,可以参考以下配置:

server {listen 80;server_name example.com www.example.com;root /var/www/html;  # 网站根目录index index.html index.htm;location / {try_files $uri $uri/ =404;}
}

保存并退出配置文件后,重新加载 Nginx 配置:

sudo nginx -t  # 测试 Nginx 配置文件是否有误

sudo systemctl reload nginx  # 重新加载配置

确保 example.com 的 DNS 记录已经正确指向你的服务器 IP。

3. 使用 Certbot 获取 SSL 证书

3.1 使用 Certbot 自动获取和配置 SSL 证书

Certbot 支持通过 自动化插件 来生成和安装 SSL 证书。我们将使用 Certbot 自带的 Nginx 插件来自动生成和安装 SSL 证书,并自动更新 Nginx 配置。

运行以下命令:

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

此命令会做以下几件事:

自动与 Let's Encrypt 通信并请求 SSL 证书。

自动配置 Nginx 来启用 SSL,并配置 HTTPS。

自动重启 Nginx 服务以使更改生效。

说明:

--nginx 指示 Certbot 使用 Nginx 插件进行自动配置。

-d example.com -d www.example.com 指定需要申请 SSL 证书的域名。

3.2 证书验证

Certbot 会提示你输入电子邮件地址,并要求你同意 Let's Encrypt 的服务条款。

输入一个有效的电子邮件地址,以便在证书即将过期时接收到提醒。

同意服务条款。

如果一切顺利,你将看到类似以下的输出:

Successfully obtained SSL certificate for example.com and www.example.com

4. 自动部署 SSL 证书到 Nginx

4.1 Certbot 自动配置 Nginx

Certbot 会自动为你配置 Nginx,使得 HTTPS 生效。如果 Nginx 配置中有问题或需要手动调整,你可以查看 Nginx 配置文件,确保它包含以下内容:

server {listen 443 ssl http2;server_name example.com www.example.com;ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {root /var/www/html;index index.html index.htm;}
}server {listen 80;server_name example.com www.example.com;return 301 https://$host$request_uri;  # 强制跳转 HTTPS
}

4.2 验证配置

在浏览器中访问 https://example.com,你应该看到网站已经通过 HTTPS 加载,并且地址栏显示安全锁。

如果需要检查 SSL 证书的有效性,可以使用工具如 SSL Labs' SSL Test 来验证证书配置和网站安全性。

5. 配置自动续期

Let's Encrypt 证书有效期为 90 天,因此需要定期续期。Certbot 提供了自动续期功能。

5.1 设置自动续期

Certbot 在安装时默认会为你设置定时任务(cron job)来自动续期证书。你可以通过以下命令检查续期设置:

sudo systemctl status certbot.timer

5.2 手动续期

如果你想手动测试续期,可以运行以下命令:

sudo certbot renew --dry-run

此命令不会实际续期证书,但会模拟续期过程,以确保自动续期功能正常。

Certbot 和 Let's Encrypt 提供了免费的 SSL 证书,帮助网站快速实现 HTTPS 加密,确保安全的通信和用户数据保护。

相关文章:

  • POSIX介绍
  • SD - WAN 跨境网络专线部署方式介绍
  • 国产工业软件突破路径
  • 电脑干货:开源免费的QQ空间说说下载工具GetQzonehistory
  • 机器指标监控技术方案
  • FreeBSD升级到14.2后启动的时候提示BOOT LOADER IS TOO OLD. PLEASE UPGRADE.
  • 利用v0与Cursor优化开发流程和效率
  • 六.割草机技术总结--6.RTK定位精度分析
  • Arduino程序结构详解与嵌入式开发对比指南
  • 7.软考高项(信息系统项目管理师)-资源管理
  • 中国1km分辨率1901-2023年均气温降水数据
  • DotNet 入门:(二) 项目运行
  • 分组密码算法ShengLooog设计原理详解
  • Kubernetes 配置中的 Selector 详解
  • 验证加密与数字签名实验
  • 英语四级听力疑难知识点详解
  • WebGL图形编程实战【5】:层次构建 × Shader初始化深度剖析
  • 可视化网页自动化流程管理工具
  • 实验-单总线温度采集与显示(汇编语言与接口技术)
  • 拒绝侥幸,拥抱变化
  • 来论|受美国“保护”,日本民众要付出什么代价?
  • 鲁迅先生儿媳、周海婴先生夫人马新云女士逝世,享年94岁
  • 浪尖计划再出发:万亿之城2030课题组赴九城调研万亿产业
  • 比黄油年糕热量还高,这个火爆全网的甜品劝你慎吃
  • 医学统计专家童新元逝世,终年61岁
  • 关于新冠疫情防控与病毒溯源的中方行动和立场