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

使用 acme.sh 申请域名 SSL/TLS 证书完整指南

  • 使用 acme.sh 申请域名 SSL/TLS 证书完整指南
    • 简介
    • 为什么选择 acme.sh 和 ZeroSSL?
    • 前置要求
    • 安装过程
      • 步骤一:安装 acme.sh
      • 步骤二:配置 ZeroSSL
    • 证书申请
      • 方法一:手动 DNS 验证(推荐新手使用)
      • 方法二:自动 DNS API 验证
    • 证书安装和管理
      • 步骤一:创建 SSL 目录
      • 步骤二:安装证书
      • 步骤三:配置 Nginx
      • 步骤四:测试并重启 Nginx
    • 证书文件说明
    • 自动续期
    • 验证过程
    • 故障排除提示
    • 安全最佳实践
    • 总结

使用 acme.sh 申请域名 SSL/TLS 证书完整指南

在这里插入图片描述
在这里插入图片描述

简介

本指南将详细介绍如何使用 acme.sh 配合 ZeroSSL 获取和管理 SSL/TLS 证书。我们将以 cheungxiongwei.com 为例,介绍从安装到自动续期的完整过程,包括根域名和泛域名证书的配置。

为什么选择 acme.sh 和 ZeroSSL?

  • 免费无限证书:可以免费生成无限数量的90天 SSL 证书
  • 支持泛域名:使用单个证书即可保护无限数量的子域名
  • 自动化管理:内置证书续期和部署功能
  • 多域名支持:可同时为多个域名颁发证书
  • 账户集成:所有证书都存储在您的 ZeroSSL 账户中

前置要求

  • 一台具有 root 访问权限的 Linux 服务器
  • 已注册的域名
  • 基本的命令行使用知识
  • 域名 DNS 设置的访问权限

安装过程

步骤一:安装 acme.sh

curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --version

步骤二:配置 ZeroSSL

  1. 设置 ZeroSSL 为默认证书颁发机构:
acme.sh --set-default-ca --server zerossl
  1. 设置 ZeroSSL EAB(外部账户绑定)凭证:
  • 访问 ZeroSSL 控制面板
  • 生成 EAB 凭证
  • 配置凭证:
export ZERO_EAB_KEY="你的_eab_key"
export ZERO_EAB_HMAC="你的_eab_hmac"

证书申请

方法一:手动 DNS 验证(推荐新手使用)

  1. 启动证书申请:
acme.sh --issue --dns -d cheungxiongwei.com -d "*.cheungxiongwei.com" --yes-I-know-dns-manual-mode-enough-go-ahead-please
  1. 添加 DNS TXT 记录:
记录类型主机记录记录值
TXT_acme-challenge[提供的值]
TXT_acme-challenge.*[提供的值]
  1. 验证 DNS 解析:
dig TXT _acme-challenge.cheungxiongwei.com
dig TXT _acme-challenge.*.cheungxiongwei.com
  1. 完成证书颁发:
acme.sh --renew -d cheungxiongwei.com -d "*.cheungxiongwei.com" --yes-I-know-dns-manual-mode-enough-go-ahead-please

方法二:自动 DNS API 验证

  1. 配置 DNS API 凭证(以 DNSPod 为例):
export DP_Id="API_ID"
export DP_Key="API_KEY"
  1. 颁发证书:
acme.sh --issue --dns dns_dp -d cheungxiongwei.com -d "*.cheungxiongwei.com"

证书安装和管理

步骤一:创建 SSL 目录

sudo mkdir -p /etc/ssl/cheungxiongwei.com

步骤二:安装证书

acme.sh --install-cert -d cheungxiongwei.com \
--key-file /etc/ssl/cheungxiongwei.com/cheungxiongwei.com.key \
--fullchain-file /etc/ssl/cheungxiongwei.com/fullchain.cer \
--reloadcmd "systemctl reload nginx"

步骤三:配置 Nginx

server {listen 443 ssl;server_name cheungxiongwei.com *.cheungxiongwei.com;ssl_certificate /etc/ssl/cheungxiongwei.com/fullchain.cer;              # 使用完整证书链ssl_certificate_key /etc/ssl/cheungxiongwei.com/cheungxiongwei.com.key; # 使用私钥文件ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;root /var/www/cheungxiongwei.com;index index.html;location / {try_files $uri $uri/ =404;}
}server {listen 80;server_name cheungxiongwei.com *.cheungxiongwei.com;return 301 https://$host$request_uri;
}

步骤四:测试并重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

证书文件说明

  • fullchain.cer:完整的证书链,用于服务器配置
  • cheungxiongwei.com.key:私钥(需要安全保管)
  • ca.cer:中间证书
  • cheungxiongwei.com.cer:域名证书

自动续期

acme.sh 包含内置的 cron 任务,每天检查证书续期。我们之前使用的 --install-cert 命令已经配置了自动续期并重载 Nginx。

验证过程

  1. 检查 HTTPS 连接:访问 https://cheungxiongwei.com
  2. 验证泛域名证书:测试任意子域名,如 https://www.cheungxiongwei.com
  3. 在浏览器中检查证书详情

故障排除提示

  • 如果 DNS 验证失败,等待 10-15 分钟让解析生效
  • 检查 Nginx 错误日志:sudo tail -f /var/log/nginx/error.log
  • 验证 Nginx 配置中的证书路径
  • 确保 SSL 证书文件权限正确

安全最佳实践

  1. 确保私钥安全并做好备份
  2. 仅使用 TLS 1.2 和 1.3 版本
  3. 定期监控证书过期时间
  4. 维护证书文件的安全备份
  5. 使用强加密的 SSL 密码配置

总结

现在您的域名已经配置了完整的根域名和泛域名 SSL 证书保护。该设置包括自动续期和优化的 Nginx 安全配置。建议定期使用在线 SSL 测试工具检查 SSL 配置,以确保符合最佳实践和安全更新。

相关文章:

使用 acme.sh 申请域名 SSL/TLS 证书完整指南

使用 acme.sh 申请域名 SSL/TLS 证书完整指南 简介为什么选择 acme.sh 和 ZeroSSL?前置要求安装过程 步骤一:安装 acme.sh步骤二:配置 ZeroSSL 证书申请 方法一:手动 DNS 验证(推荐新手使用)方法二&#xf…...

睡岗和玩手机数据集,4653张原始图,支持YOLO,VOC XML,COCO JSON格式的标注

睡岗和玩手机数据集,4653张原始图,支持YOLO,VOC XML,COCO JSON格式的标注 数据集分割 训练组70% 3257图片 有效集20% 931图片 测试集10% 465图片 预处理 没有采用任何预处…...

[Unity] 【VR】【游戏开发】在VR中使用New Input System获取按键值的完整教程

在使用Unity开发VR项目时,推荐使用 New Input System 来处理输入操作。相比于旧的Input系统,New Input System更加灵活、功能强大,尤其在处理VR控制器的按键输入时具有明显优势。本文将详细介绍如何在VR项目中使用New Input System获取按键值,并通过代码示例和图文讲解,帮…...

网络安全渗透有什么常见的漏洞吗?

弱口令与密码安全问题 THINKMO 01 暴力破解登录(Weak Password Attack) 在某次渗透测试中,测试人员发现一个网站的后台管理系统使用了非常简单的密码 admin123,而且用户名也是常见的 admin。那么攻击者就可以通过暴力破解工具&…...

2024年合肥师范学院信息安全小组内部选拔赛(c211)WP

目录 前言MISC签到题_熟悉吗又来一道签到题文件包含 CRYPTO古典1古典2RSA webbaby_sql 前言 [HFNU 校级选拔] 已经结束,接下来一起了解下题目是怎么做的。 通过网盘分享的文件:ARCHPR_4.66.266.0_汉化绿色版.7z 链接: https://pan.baidu.com/s/1N_c0PJX…...

GESP CCF C++八级编程等级考试认证真题 2024年12月

202412 GESP CCF C八级编程等级考试认证真题 1 单选题(每题 2 分,共 30 分) 第 1 题 小杨家响应国家“以旧换新”政策,将自家的汽油车置换为新能源汽车,正在准备自编车牌。自编车牌包括5 位数字或英文字母&#xff0c…...

GlusterFS 部署全攻略:详细步骤与要点解析(上)

文章目录 1、二进制部署1.1 安装yum源1.2 准备服务器1.3 添加本地解析1.4关闭防火墙及selinux1.5 加载内核模块1.6 格式化分区和挂载brick1.7 安装GlusterFS1.8 iptables配置1.9 配置可信任池1.10 设置GlusterFS卷1.11 测试volume卷 2、使用heketi将二进制GlusterFS集群作为k8s…...

充分利用 AIStor 的网络配置

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_urlhttps%3A%2F%2Ffiles.mdnice.com%2Fuser%2F41350%2F4ce80f61-875a-493b-a4ad-e884d7835be1.png&pos_idimg-flS gQlNx-1734678799…...

算法题(10):好数

审题: 需要判断出1-N的范围内有多少个好数,并输出 思路: 遍历数据:需要用for循环(从1循环到N) 每一位判断:用while循环,先从个位开始,每循环一次就让记录位数的变量&…...

使用二分查找法找出给定点距离给定点集合距离最近的点

1、场景描述 给定点Point A (x,y)和 直线点集合 Points [(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)......],计算出集合中距离点A最近的一个点 (如果集合中的两个点距离A点最近且相等,则只取其中一个) 2、代码&#x…...

国标GB28181协议平台Liveweb:搭建建筑工地无线视频联网监控系统方案

随着科技高速发展,视频信号经过数字压缩,通过互联网宽带或者移动4G网络传递,可实现远程视频监控功能。将这一功能运用于施工现场安全管理,势必会大大提高管理效率,提升监管层次。而这些,通过Liveweb监控系统…...

构建MacOS应用小白教程(打包 签名 公证 上架)

打包 在package.json中,dependencies会被打进 Electron 应用的包里,而devDependencies则不会,所以必要的依赖需要放到dependencies中。files中定义自己需要被打进 Electron 包里的文件。以下是一个完整的 mac electron-builder的配置文件。 …...

Nginx 双向链表 ngx_queue_t

目录 一、基本概述 二、数据结构 三、接口描述与实现 1、相关宏接口 2、ngx_queue_middle 3、ngx_queue_sort 四、使用案例 整理自 nginx 1.9.2 源码 和 《深入理解 Nginx:模块开发与架构解析》 一、基本概述 双向链表的优势是可以快速进行数据插入、删除与…...

【vue】npm install 报错 python2 Error: not found: python2

如图所示,vue项目在下载依赖的时候报错找不到python2,有网友通过下载python2.7并配置环境变量解决了,这里有两个其他自测可用的方式,供各位作为参考。 报错的主要原因是因为【sass-loader】【node-sass】这两个依赖跟nodejs版本有…...

CS 144 check3: the TCP sender

Lecture Notes 略 Exercises 现在,在check3中,您将实现连接的另一边。 TCPSender是一种工具,它从出站字节流转换为将成为不可靠数据报的有效负载的段。 TCP sender的任务是确保receiver至少收到每个bytes一次。任务: 1、跟踪…...

Deepin/Linux clash TUN模式不起作用,因网关导致的问题的解决方案。

网关导致的问题的解决方案 查看路由 ip route寻找默认路由 默认路由应当为Mihomo default dev Mihomo scope link 如果不是,则 sudo ip route add default dev Mihomo在clash TUN开关状态发生变化时,Mihomo网卡会消失,所以提示找不到网卡…...

Tomato 靶机(通关攻略)

点击开启靶机 去kali终端输入 arp-scan -l //扫描靶机IP 扫出靶机IP192.168.131.171 第一步:信息收集 端口扫描 nmap -p- 192.168.131.171 敏感目录扫描 dirb http://192.168.131.171 总结: IP:192.168.168.131 开放端口:2…...

服务器被入侵登录不上怎么办?

在数字化时代,服务器作为数据存储与业务运行的核心载体,其安全性直接关系到企业的生死存亡。然而,随着网络攻击手段的不断升级,服务器被入侵的事件屡见不鲜,导致系统瘫痪、数据泄露等严重后果。当您发现自己的服务器被…...

达梦官方工具 SQLark数据迁移(oracle->达梦数据库)

应国产化需求需要,需将系统中涉及的各中间件替换成国产中间件,此文介绍了从Oracle迁移数据至达梦dm8的步骤,该文在windos环境下已验证测试过 1 SQLark介绍 SQLark是一款专为信创应用开发者设计的数据库开发和管理工具。它支持快速查询、创建和管理多种类型的数据库系统&#xf…...

redis数据类型:list

list 的相关命令配合使用的应用场景: 栈和队列:插入和弹出命令的配合,亦可实现栈和队列的功能 实现哪种数据结构,取决于插入和弹出命令的配合,如左插右出或右插左出:这两种种方式实现先进先出的数据结构&a…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子&#xff08…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...