腾讯云DNS和Lego工具结合使用,可以方便地为你的域名自动申请和续期SSL证书。

embedded/2025/3/28 10:03:20/

腾讯云DNS和Lego工具结合使用,可以方便地为你的域名自动申请和续期SSL证书。以下是具体步骤:

1. 准备工作

  • 腾讯云账号:确保你有一个腾讯云账号,并且已经开通了DNS服务。
  • 域名:确保你拥有一个域名,并且已经将域名的DNS解析托管在腾讯云DNS上。
  • 服务器:你需要一台服务器来运行Lego工具,并且能够访问公网。

2. 安装Lego

Lego是一个用Go语言编写的工具,用于自动申请和续期Let’s Encrypt的SSL证书。

在服务器上安装Lego:

# 下载Lego
wget https://github.com/go-acme/lego/releases/download/v4.5.3/lego_v4.5.3_linux_amd64.tar.gz# 解压
tar -xzf lego_v4.5.3_linux_amd64.tar.gz# 将Lego移动到可执行路径
sudo mv lego /usr/local/bin/

3. 配置腾讯云DNS API

Lego需要通过腾讯云的API来管理DNS记录,因此你需要获取腾讯云的API密钥。

  1. 登录腾讯云控制台。
  2. 进入API密钥管理页面。
  3. 创建一个新的API密钥,并记录下SecretIdSecretKey

4. 使用Lego申请SSL证书

使用Lego申请SSL证书时,需要指定腾讯云DNS作为DNS提供商。

# 设置环境变量
export TENCENT_CLOUD_SECRET_ID="your-secret-id"
export TENCENT_CLOUD_SECRET_KEY="your-secret-key"# 申请证书
lego --dns tencentcloud --domains yourdomain.com --email your-email@example.com run
  • yourdomain.com:你要申请证书的域名。
  • your-email@example.com:你的邮箱地址,用于接收证书相关的通知。

5. 证书文件

Lego会将生成的证书文件保存在当前目录下的.lego文件夹中。你可以找到以下文件:

  • certificates/yourdomain.com.crt:证书文件。
  • certificates/yourdomain.com.key:私钥文件。

6. 配置Web服务器

将生成的证书和私钥文件配置到你的Web服务器中。以Nginx为例:

server {listen 443 ssl;server_name yourdomain.com;ssl_certificate /path/to/yourdomain.com.crt;ssl_certificate_key /path/to/yourdomain.com.key;# 其他配置...
}

7. 自动续期

Let’s Encrypt的证书有效期为90天,因此需要定期续期。你可以设置一个cron任务来自动续期证书。

# 编辑cron任务
crontab -e# 添加以下内容,每天凌晨2点检查并续期证书
0 2 * * * /usr/local/bin/lego --dns tencentcloud --domains yourdomain.com --email your-email@example.com renew --days 30

8. 验证

访问https://yourdomain.com,确保SSL证书已正确配置并且网站可以正常访问。
要将通过 Lego 申请的 SSL 证书颁发到 Nginx 的指定位置(如 /etc/nginx/cert/dongqianshan.com),可以按照以下步骤操作:


1. 申请证书并保存到指定位置

在申请证书时,使用 --path 参数指定证书的保存路径。例如,将证书保存到 /etc/nginx/cert/dongqianshan.com

lego --email="1027911109@qq.com" --domains="dongqianshan.com" --domains="*.dongqianshan.com" --dns tencentcloud --path /etc/nginx/cert/dongqianshan.com run

执行后,证书文件会生成在 /etc/nginx/cert/dongqianshan.com/certificates/ 目录下。


2. 移动证书文件到 Nginx 配置位置

将生成的证书文件移动到 Nginx 的配置位置 /etc/nginx/cert/dongqianshan.com

mv /etc/nginx/cert/dongqianshan.com/certificates/dongqianshan.com.crt /etc/nginx/cert/dongqianshan.com/dongqianshan.com_bundle.crt
mv /etc/nginx/cert/dongqianshan.com/certificates/dongqianshan.com.key /etc/nginx/cert/dongqianshan.com/dongqianshan.com.key

3. 配置 Nginx

编辑 Nginx 配置文件(如 /etc/nginx/nginx.conf/etc/nginx/sites-available/default),添加 SSL 配置:

server {listen 443 ssl;server_name dongqianshan.com www.dongqianshan.com;ssl_certificate /etc/nginx/cert/dongqianshan.com/dongqianshan.com_bundle.crt;ssl_certificate_key /etc/nginx/cert/dongqianshan.com/dongqianshan.com.key;# 其他配置...
}

4. 重启 Nginx

保存配置文件后,重启 Nginx 使配置生效:

sudo systemctl restart nginx

5. 验证证书

访问 https://dongqianshan.com,确保 SSL 证书已正确配置并且网站可以正常访问。


6. 自动续期并更新 Nginx 配置

Lego 支持自动续期证书。你可以设置一个脚本,在续期后自动更新 Nginx 配置并重启 Nginx。

创建脚本 /etc/nginx/cert/renew.sh

#!/bin/bash# 续期证书
lego --email="1027911109@qq.com" --domains="dongqianshan.com" --domains="*.dongqianshan.com" --dns tencentcloud --path /etc/nginx/cert/dongqianshan.com renew --days 30# 移动证书文件
mv /etc/nginx/cert/dongqianshan.com/certificates/dongqianshan.com.crt /etc/nginx/cert/dongqianshan.com/dongqianshan.com_bundle.crt
mv /etc/nginx/cert/dongqianshan.com/certificates/dongqianshan.com.key /etc/nginx/cert/dongqianshan.com/dongqianshan.com.key# 重启 Nginx
systemctl restart nginx

赋予脚本执行权限:

chmod +x /etc/nginx/cert/renew.sh

设置定时任务(例如每天凌晨 2 点执行):

0 2 * * * /etc/nginx/cert/renew.sh

总结

通过以上步骤,你可以将 Lego 申请的 SSL 证书颁发到 Nginx 的指定位置,并配置 Nginx 使用该证书。同时,通过自动续期脚本,确保证书始终保持有效。

总结

通过腾讯云DNS和Lego工具,你可以轻松地为你的域名申请和续期SSL证书,确保网站的安全性。


http://www.ppmy.cn/embedded/176559.html

相关文章

【第12节】windows sdk编程:动态链接库与静态库

目录 一、动态库 二、动态库由来 三、 库 四、 一个简单的 DLL 五、调用 DLL 六、静态库 七、静态库的使用 八、名称粉碎 九、 调试 DLL 一、动态库 动态链接库(也称为 DLL,Dynamic Linkable Library)是 Microsoft Windows 最重要的…

OpenHarmony子系统开发 - 电池管理(二)

OpenHarmony子系统开发 - 电池管理(二) 五、充电限流限压定制开发指导 概述 简介 OpenHarmony默认提供了充电限流限压的特性。在对终端设备进行充电时,由于环境影响,可能会导致电池温度过高,因此需要对充电电流或电…

『 C++ 』原生字符串:让字符串处理更轻松

文章目录 前言一、什么是原生字符串?二、原生字符串的优势2.1 无需转义特殊字符2.2 支持多行字符串2.3 使用原生字符串的注意事项 三、总结 前言 在C编程中,字符串是常用的数据类型之一,但处理包含特殊字符的字符串(如JSON、正则表…

dify1.1.1安装

1、 按照GitHub上操作 下载源码,没有安装git的,可以下载成zip包, unzip 解压 git clone https://github.com/langgenius/dify.git cd dify cd docker cp .env.example .env2、启动前 ,先改下 docker-compose.yaml,…

Python实现deepseek接口的调用

简介:DeepSeek 是一个强大的大语言模型,提供 API 接口供开发者调用。在 Python 中,可以使用 requests 或 httpx 库向 DeepSeek API 发送请求,实现文本生成、代码补全,知识问答等功能。本文将介绍如何在 Python 中调用 …

23种设计模式中的策略模式

在策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改客户端代码。 策略模式:Strategy。指的是,定义…

第四章 表单(2)- 输入组件

在 Blazor 框架中,微软对 HTML 输入元素进行了封装,称为输入组件。使用输入组件相较于原生 HTML 输入元素,在编码和安全性方面具有显著优势。 输入组件简介 Blazor框架提供了用于接收和验证用户输入的内置输入组件,这些组件可以…

vue java 实现大地图切片上传

文章目录 一、项目背景二、页面三、代码1.前端2.mock-i18n.js文件3.xx.js文件定义方法4.配置文件 application.properties5.后端方法 四、易错点易错点1:前端要进行分片切割,然后再分片上传。易错点2:后端配置文件要配置。易错点3&#xff1a…