【网站建设:HTTPS - 如何生成免费SSL证书,并自动更新】

ops/2025/2/2 17:06:58/

某阿X云服务平台的证书托管服务中,有关于HTTPS证书获取,生成和自动更新的功能。但其作为一项增值服务,每月就要几百元 。但是这个我们可以自己写几行代码来实现,

  • 证书生成
  • 更新到Nginx
  • 自动更新

假设我们有个域名wu123.cn要为域名 生成 SSL 证书和密钥。

使用 Let’s Encrypt 免费 SSL 证书:Let’s Encrypt 是一个免费的、自动化的、开放的证书颁发机构 (CA),可以为你的域名生成免费的 SSL 证书。

1. 证书生成

使用 Let’s Encrypt 生成 SSL 证书,Let’s Encrypt 提供免费的 SSL 证书,并且可以使用 Certbot 工具自动生成和管理证书。

安装 Certbot,在 Ubuntu 上安装 Certbot

sudo apt update
sudo apt install certbot python3-certbot-nginx

2. 更新到Nginx

2.1 使用 Certbot 生成 SSL 证书,生成 SSL 证书

sudo certbot --nginx -d wu123.cn -d www.wu123.cn

Certbot 会自动配置 Nginx 并生成 SSL 证书和密钥。
证书和密钥文件通常会生成在 /etc/letsencrypt/live/wu123.cn/ 目录下。

2.2 配置 Nginx 使用 SSL 证书,一个 Nginx 配置示例,展示了如何使用生成的 SSL 证书:
Nginx 配置文件 (/etc/nginx/sites-available/default)

server {listen 80;server_name wu123.cn www.wu123.cn;location / {return 301 https://$host$request_uri;}
}server {listen 443 ssl;server_name wu123.cn www.wu123.cn;ssl_certificate /etc/letsencrypt/live/wu123.cn/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/wu123.cn/privkey.pem;location / {proxy_pass <http://localhost:3000>; # 你的应用服务器proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}

3. 自动更新

# 测试一下自动更新
sudo certbot renew --dry-run
# 添加到定时任务
sudo crontab -e
0 0 * * 0 /usr/bin/certbot renew --quiet

至此,通过以上三步,便完成了HTTPS证书的生成,以及更新维护。
https://i-blog.csdnimg.cn/img_convert/64342394d7120cff01ccde2fb232a915.webp?x-oss-process=image/format,png" alt="" />


http://www.ppmy.cn/ops/155083.html

相关文章

Maya快捷键

旋转 ALT鼠标左键 平移 ALT鼠标中键 缩放 ALT鼠标右键 / 滑动鼠标滚轮 切换视图 空格键 [Q] 选择状态 [W] 移动状态 [E] 旋转状态 [R] 绽放状态 1正常显示 2正常也圆滑同时显示 3圆滑显示 4线框显示 5材质显示 6贴图显示 7灯光显示 CTRLZ 撤销命令…

1561. 你可以获得的最大硬币数目

1561. 你可以获得的最大硬币数目 题目链接&#xff1a;1561. 你可以获得的最大硬币数目 代码如下&#xff1a; class Solution { public:int maxCoins(vector<int>& piles) {sort(piles.begin(), piles.end());int res 0;for (int i piles.size() / 3;i < pil…

进程池的制作(linux进程间通信,匿名管道... ...)

目录 一、进程间通信的理解 1.为什么进程间要通信 2.如何进行通信 二、匿名管道 1.管道的理解 2.匿名管道的使用 3.管道的五种特性 4.管道的四种通信情况 5.管道缓冲区容量 三、进程池 1.进程池的理解 2.进程池的制作 四、源码 1.ProcessPool.hpp 2.Task.hpp 3…

PyTorch 快速入门

我们将通过一个简单的示例&#xff0c;快速了解如何使用 PyTorch 进行机器学习任务。PyTorch 是一个开源的机器学习库&#xff0c;它提供了丰富的工具和库&#xff0c;帮助我们轻松地构建、训练和测试神经网络模型。以下是本教程的主要内容&#xff1a; 一、数据处理 PyTorch…

DDD 和 TDD

领域驱动设计&#xff08;DDD&#xff09; DDD 是一种软件开发方法&#xff0c;强调通过与领域专家的密切合作来构建一个反映业务逻辑的模型。其核心思想是将业务逻辑和技术实现紧密结合&#xff0c;以便更好地解决复杂的业务问题。 DDD 的关键概念&#xff1a; 1. 领域模型 …

Spring Boot - 数据库集成05 - 集成MongoDB

Spring Boot集成MongoDB 文章目录 Spring Boot集成MongoDB一&#xff1a;使用前的准备1&#xff1a;依赖导入 & 配置2&#xff1a;实体类创建 二&#xff1a;核心 - MongoRepository三&#xff1a;核心 - MongoTemplate1&#xff1a;集合操作2&#xff1a;文档操作(重点)3&…

RabbitMQ---面试题

常见面试题 1.MQ的作用及应用场景 类似问题&#xff1a;项目什么情况下用到了MQ&#xff0c;为什么要用MQ MQ的主要应用场景&#xff0c;消息队列的应用场景&#xff0c;为什么说消息队列可以削峰 首先MQ是一种用来接收和转发消息的队列&#xff0c;常见的应用常见如下&…

【力扣】15.三数之和

AC截图 题目 思路 这道题如果简单的用暴力三重遍历去做&#xff0c;会超时。所以我们思考假如有三个下标&#xff0c;i&#xff0c;l&#xff0c;r 其中i0&#xff08;初始&#xff09;&#xff0c;li1 rnums.size()-1 我们固定nums[i]的值&#xff0c;那么就转换为两数之和…