邢走在云端

vuePress-theme-reco 邢走在云端    2025
邢走在云端 邢走在云端

Choose mode

  • dark
  • auto
  • light
首页
分类
  • 2019
  • 2020
  • 2021
  • 2022
  • 2023
  • 2024
  • 2025
标签
时间线
关于我
webpack5
h-design
GitHub
author-avatar

邢走在云端

85

Article

104

Tag

首页
分类
  • 2019
  • 2020
  • 2021
  • 2022
  • 2023
  • 2024
  • 2025
标签
时间线
关于我
webpack5
h-design
GitHub

自动续签腾讯云ssl证书并部署

vuePress-theme-reco 邢走在云端    2025

自动续签腾讯云ssl证书并部署

邢走在云端 2025-01-10 20:11:11 ssl

ACME(自动证书管理环境)是一个互联网工程任务组维护的协议,它允许自动化 Web 服务器证书的部署,acme.sh 是支持 ACME 协议流行的客户端之一,可以通过其实现 SSL 证书的自动申请、续期等。本文将介绍如何使用 acme.sh 自动申请证书。

# 一、安装 acme.sh

# 全新安装

适用于未安装 acme.sh 的用户,使用以下命令安装 acme.sh 客户端:

# 安装 acme.sh

curl https://get.acme.sh | sh -s email=my@example.com

或者:

wget -O -  https://get.acme.sh | sh -s email=my@example.com

说明:

请将 my@example.com 替换为您的邮箱地址。

image-20250110105104558

# 旧版升级

适用于已安装 acme.sh 的用户,请运行以下命令升级 acme.sh 客户端:

acme.sh --upgrade

# 二、获取腾讯云 SecretId 和 SecretKey

# 方式一:使用主账号 API 密钥

  1. 登录 腾讯云控制台 ,进入 访问管理 页面,单击左侧菜单栏的访问密钥 ,进入 API 密钥管理页面。

访问密钥

  1. 单击新建密钥,创建 API 密钥,并记录保存 SecretId 和 SecretKey。

# 方式二:使用子账号 API 密钥

# 步骤一:新建权限策略

  1. 登录 腾讯云控制台 ,进入 访问管理 页面,单击左侧菜单栏的策略 ,进入策略页面,并点击新建自定义策略。

策略

  1. 选择按策略语法创建 > 空白模板,填写基本信息,并将策略语法修改为以下内容,并单击完成。
{
 "statement": [
     {
         "action": [
             "dnspod:DescribeRecordFilterList",
             "dnspod:DescribeRecordList",
             "dnspod:CreateRecord",
             "dnspod:DeleteRecord"
         ],
         "effect": "allow",
         "resource": [
             "*"
         ]
     }
 ],
 "version": "2.0"
}

策略语法

说明:

如您需要更精细的权限控制,可根据实际需求修改策略语法,如配置资源六段式等,详情请参见 CAM-云解析 DNS 。

# 步骤二:新建子账号并关联权限策略

  1. 登录 腾讯云控制台 ,进入 访问管理 页面,单击左侧菜单栏的用户列表 ,进入用户列表页面,并单击新建用户。

用户列表

  1. 在新建用户页面**,选择快速创建。填写用户信息,并选择编程访问**。

快速创建

  1. 在快速新建用户页面,填写用户信息,并选择编程访问。

编程访问

  1. 配置用户权限,仅选择刚刚创建的权限策略,并单击确定。

用户权限

  1. 单击创建用户,完成子账号创建。

创建用户

  1. 记录保存 SecretId 和 SecretKey。

SecretId 和 SecretKey

# 三、申请证书

  1. 将获取到的 SecretId 和 SecretKey 导入环境变量中,以便 acme.sh 调用。
export Tencent_SecretId="<Your SecretId>"
export Tencent_SecretKey="<Your SecretKey>"

例如:使用 acme.sh 申请证书,例如:

acme.sh --issue --dns dns_tencent -d example.com -d *.example.com

运行后,acme.sh 将自动为您的域名申请证书,并将证书文件保存在~/.acme.sh/example.com/目录下,并且会自动为您的域名配置证书自动续期任务,无需手动续期。

# 四、后续操作

# 安装证书

警告:

acme.sh 不建议直接使用~/.acme.sh/目录下的证书文件,而是通过 acme.sh 提供的命令将证书安装到指定位置,以确保证书的正确使用和续期,详情请参见 Install the cert to Apache/Nginx etc ,以下以 Nginx 为例。

acme.sh --installcert -d xxx.cn \
--key-file /etc/nginx/xxx.cn_nginx/xxx.key \
--fullchain-file /etc/nginx/xxx.cn_nginx/xxx.crt \
--reloadcmd  "nginx -s reload"

注意:

请将example.com替换为您的域名,/path/to/keyfile/in/nginx/key.pem和/path/to/fullchain/nginx/cert.pem替换为证书实际路径,service nginx force-reload替换为您使用的 web 服务重载命令。

完成申请后请将证书配置到您的网站中,以 Nginx 为例,示例如下:

server {
    listen 443 ssl http2;
    server_name example.com;

    # 请替换为证书实际路径
    ssl_certificate /path/to/keyfile/in/nginx/cert.pem;
    ssl_certificate_key /path/to/fullchain/nginx/key.pem;
    
    ssl_session_timeout 5m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
    ssl_prefer_server_ciphers off;
    ssl_prefer_server_ciphers on;
    location / {
        root /nginx/www/html;
    }
}

注意:

完成后请重载服务。