通过脚本申请免费SSL证书(泛解析SSL证书)

参考来源

1.https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
2.https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode
3.https://github.com/acmesh-official/acme.sh/wiki/dnsapi

安装 acme.sh + 配置账号 + 配置默认CA

安装依赖

# Centos/RedHat安装依赖命令
yum update && yum install curl -y && yum install cron -y && yum install socat -y

# Debian/Ubuntu安装依赖命令
apt-get update && apt-get install curl -y && apt-get install cron -y && apt-get install socat -y

安装 acme.sh

执行如下命令安装 acme.sh,acme.sh默认安装到 home 目录下的 ~/.acme.sh/ 目录

curl https://get.acme.sh | sh

安装完成后验证 acme.sh 版本,正常输出版本则说明安装成功

acme.sh --version

[root@localhost .acme.sh]# acme.sh --version
https://github.com/acmesh-official/acme.sh
v3.1.0				#这是我的,说明 acme.sh 版本是v3.1.0	

注意:如果安装完成后提示 -bash: acme.sh: command not found,需要手动执行 source ~/.bashrc

配置 acme.sh 账号

将 your-mail@mail.com 替换成自己的邮箱执行如下命令,如果未注册会自动注册的,已注册也不影响

acme.sh --register-account -m your-mail@mail.com

配置或修改默认 CA

acme.sh 实现了 acme 协议,支持从 ZeroSSL,Let’s Encrypt 等 CA 生成免费的证书,可以按需选择 CA

# 修改默认 CA 为 Let's Encrypt 
acme.sh --set-default-ca --server letsencrypt     
# 修改默认 CA 为 ZeroSSL
acme.sh --set-default-ca --server zerossl

acme.sh 脚本默认 CA 服务器是 ZeroSSL,有时可能会导致获取证书的时候一直出现:Pending,The CA is processing your order,please just wait.
只需要把 CA 服务器改成 Let’s Encrypt 即可,虽然更改以后还是有概率出现 pending,但基本 2-3 次即可成功

签发证书

acme.sh 实现了 acme 协议支持的所有验证协议。一般有两种方式验证: HTTP 和 DNS 验证。

HTTP 验证

指定 webroot 直接签发(签发 Let’s Encrypt 更稳定)

只需要指定域名,并指定域名所在的网站根目录 webroot. acme.sh 会全自动的生成验证文件,并放到网站的根目录,验证完成后会自动删除验证文件,整个过程没有任何副作用。

acme.sh --issue -d example.com.com -d www.example.com --webroot /home/wwwroot/example.com.com/
使用 Apache、Nginx 模式(使用 ZeroSSL 可能会失败,使用 Let’s Encrypt 可以)

如果你用的 Apache、Nginx 服务器,acme.sh 还可以智能的从 Apache、Nginx的配置中自动完成验证,你不需要指定网站根目录。

# 使用 Apache 模式
acme.sh --issue --apache -d example.com -d www.example.com
# 使用 Nginx 模式
acme.sh --issue --nginx -d example.com -d www.example.com

注意(参考):

  • 无论是 Apache 还是 Nginx 模式,acme.sh 在完成验证之后,会恢复到之前的状态,都不会私自更改程序本身的配置. 好处是你不用担心配置被搞坏,也有一个缺点,需要自己配置 SSL 项,否则只能成功生成证书,你的网站还是无法正常使用 HTTPS。
  • 使用 ZeroSSL 不稳定,使用Let’s Encrypt 可以,此时可以使用 acme.sh --set-default-ca --server letsencrypt 修改默认CA
  • HTTP 验证不支持签发泛解析域名
使用独立服务模式(使用 ZeroSSL、Let’s Encrypt 均可以)

如果服务器上没有运行任何 Web 服务,80 端口是空闲的,那么 acme.sh 还能假装自己是一个 WebServer,临时监听 80 端口,完成验证。

acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com

更高级的用法请参考: https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert

DNS 验证- 推荐

手动验证 DNS

需要你手动在域名上添加一条 TXT 解析记录,验证域名所有权。
注意,如果使用手动验证,acme.sh 将无法自动更新证书,每次都需要手动添加解析来验证域名所有权。如果有自动更新证书的需求,请使用自动验证(DNS API)。
1.获取验证 DNS 解析记录值
执行如下命令后acme.sh 会生成相应的解析记录显示出来,你只需要在你的域名管理面板中添加这条 TXT 记录即可

acme.sh --issue -d *.example.com --dns  --yes-I-know-dns-manual-mode-enough-go-ahead-please

2.添加 TXT 记录
域名在哪购买的,就在那个平台就在哪个平台配置解析
3.生成证书
DNS解析生效后,执行如下命令重新生成证书,注意这里现在用的是 –renew 参数,证书生成后回输出对应的存放路径的

acme.sh --renew -d *.example.com --dns  --yes-I-know-dns-manual-mode-enough-go-ahead-please
自动验证 DNS(DNS API)
腾讯-DNSPod

1.获取 DNSPod 的 API ID 和 Token
登录到 DNSPod.cn (https://console.dnspod.cn/account/token/token),拿到 DNSPod 的 API ID 和 Token,参考截图
在这里插入图片描述
2.将 DNSPod 的 API ID (就是 DP_Id) 和 Token (就是 DP_Key) 加入环境变量

export DP_Id="xxxx"
export DP_Key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

运行申请证书脚本后 DP_Id 和 DP_Key 将保存在 ~/.acme.sh/account.conf 中,并在需要时自动获取,无需手动再设置。
3.运行 acme.sh 申请证书

acme.sh --issue --dns dns_dp -d example.com -d *.example.com
阿里云-万网

1.获取 Aliyun 的 AccessKey ID 和 AccessKey Secret
登录 Aliyun RAM 访问控制 (https://ram.console.aliyun.com/users/create),拿到 Aliyun 的 AccessKey ID 和 AccessKey Secret,参考截图
在这里插入图片描述
添加管理DNS解析的权限(AliyunDNSFullAccess)
在这里插入图片描述
2.将 AccessKey ID(就是 Ali_Key) 和 AccessKey Secret(就是 Ali_Secret) 加入环境变量

export Ali_Key="xxxxxxxxxxxxxxxxxxxxxxx"
export Ali_Secret="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

运行申请证书脚本后 Ali_Key 和 Ali_Secret 将保存在 ~/.acme.sh/account.conf 中,并在需要时自动获取,无需手动再设置。
3.运行 acme.sh 申请证书

acme.sh --issue --dns dns_ali  -d example.com -d *.example.com
其他 DNS 平台

参考:https://github.com/acmesh-official/acme.sh/wiki/dnsapi

命令执行完成后,会输出证书存放路径的,生成的证书参考截图。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/958261.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CrypTen项目实践

CrypTen是一个用于安全多方计算(MPC)的python库,基于PyTorch构建。 CrypTen facebookresearch/CrypTen: A framework for Privacy Preserving Machine Learning 目录 一、实践准备 二、实践操作 1.下载WSL 2.下载代码 3.创建虚拟环境&…

【CS61A 2024秋】Python入门课,全过程记录P3(Week5 Sequences开始,更新于2025/1/23)

文章目录 关于基本介绍👋新的问题Week5Mon Sequences阅读材料 关于 个人博客,里面偶尔更新,最近比较忙。发一些总结的帖子和思考。 江湖有缘相见🤝。如果读者想和我交个朋友可以加我好友(见主页or个人博客&#xff0…

Jenkins-基于Role的鉴权机制

jenkins自带了一些全局性的安全配置。 但无法通过job等相对细粒度的来控制使用者的权限。但它可以借助相关的插件实现细颗粒的权限控制。 插件: Role-based Authorization Strategy 需要在configure global security中配置授权策略如下: 保存后&#x…

SSM开发(一)JAVA,javaEE,spring,springmvc,springboot,SSM,SSH等几个概念区别

目录 JAVA 框架 javaEE spring springmvc springboot SSM SSH maven JAVA 一种面向对象、高级编程语言,Python也是高级编程语言;不是框架(框架:一般用于大型复杂需求项目,用于快速开发)具有三大特性,所谓Jav…

Linux——入门基本指令汇总

目录 1. ls指令2. pwd3. whoami指令4. cd指令5. clear指令6. touch指令7. mkdir指令8. rm指令9. man指令10. cp指令11. mv指令12. cat指令13. tac指令14. more指令15. less指令16. head指令17. tail指令18. date指令19. cal指令20. find指令21. which指令22. alias指令23. grep…

基于SpringBoot+Vue的旅游管理系统【源码+文档+部署讲解】

系统介绍 基于SpringBootVue实现的旅游管理系统采用前后端分离架构方式,系统设计了管理员、用户两种角色,系统实现了用户登录与注册、个人中心、用户管理、景点信息管理、订票信息管理、用户评价管理、景点咨询、轮播图管理等功能。 技术选型 开发工具…

光学遥感显著性目标检测2023-2024论文学习

GRSL 2023: Attention-Aware Three-Branch Network for Salient Object Detection in Remote Sensing Images 基于encoder-decoder框架,提出了一系列缝合模块,GCA,FDUC,MSDC,RA。 GRSL 2023:OR…

接口 V2 完善:基于责任链模式、Canal 监听 Binlog 实现数据库、缓存的库存最终一致性

🎯 本文介绍了一种使用Canal监听MySQL Binlog实现数据库与缓存最终一致性的方案。文章首先讲解了如何修改Canal配置以适应订单表和时间段表的变化,然后详细描述了通过责任链模式优化消息处理逻辑的方法,确保能够灵活应对不同数据表的更新需求…

graylog~认识一下-日志管理平台

1、介绍 Graylog 是一个开源的日志管理和分析平台,旨在帮助企业集中收集、存储、搜索和分析来自各种来源的日志数据。它提供了强大的实时日志处理能力,适用于大规模分布式系统和复杂的生产环境。 主要功能 集中化日志管理: 收集来自不同来源…

Android程序中使用FFmpeg库

目录 前言 一、环境 二、创建APP 三. 添加FFmpeg库文件到app中 1. 复制ffmpeg头文件和so库到app中 2. 修改CMakeLists.txt文件内容. 3. 修改ffmpeglib.cpp 文件内容 4. 修改NativeLib.kt 文件添加方法和加载库 5. 调用 四. 增加解析视频文件信息功能 总结 前言 前面…

AI 编程工具—Cursor进阶使用 Rules for AI

AI 编程工具—Cursor进阶使用 Rules for AI 这里配置是给所有的会话和内嵌模式的,你可以理解为是一个全局的配置 下面的代码是之前Cursor 给我们生成的,下面我们开始配置Rules ,来让Cursor生成的代码更加符合我们的编程习惯 def quick_sort(arr):"""使用快…

【系统环境丢失恢复】如何恢复和重建 Ubuntu 中的 .bashrc 文件

r如果你遇到这种情况,说明系统环境的.bashrc 文件丢失恢复: 要恢复 ~/.bashrc 文件,可以按照以下几种方式操作: 恢复默认的 ~/.bashrc 文件 如果 ~/.bashrc 文件被删除或修改,你可以恢复到默认的版本。可以参考以下…

PyTorch使用教程(8)-一文了解torchvision

一、什么是torchvision torchvision提供了丰富的功能,主要包括数据集、模型、转换工具和实用方法四大模块。数据集模块内置了多种广泛使用的图像和视频数据集,如ImageNet、CIFAR-10、MNIST等,方便开发者进行训练和评估。模型模块封装了大量经…

实战演示:利用ChatGPT高效撰写论文

在当今学术界,撰写论文是一项必不可少的技能。然而,许多研究人员和学生在写作过程中常常感到困惑和压力。幸运的是,人工智能的快速发展为我们提供了新的工具,其中ChatGPT便是一个优秀的选择。本文将通过易创AI创作平台&#xff0c…

群晖部署-Calibreweb

最近家里搞了台群晖,准备部署个Calibreweb看看电子书,看了好多部署的教程老是不太成功,要么报错要么有问题的,很难搞。下面将部署流程分享一下,给大家参考,少走点弯路 镜像的选择 我们使用johngong/calibr…

WordPress果果对象存储插件

将网站上的图片等静态资源文件上传至七牛云对象存储,可以减轻服务器文件存储压力,提升静态文件访问速度,从而加速网站访问速度。 支持:阿里云对象存储、华为云对象存储、百度云对象存储、腾讯云对象存储、七牛云对象存储。 下载…

电路研究9.1.1——合宙 Air780EP 模组外围线路

本来要继续研究AT指令来着,结果发现后面还有之前用到的电路设计资料,所以就贴过来了。 5.3.2 工作模式: 注意:  当模块进入休眠模式或深度休眠模式后, VDD_EXT 电源会掉电,相应电压域的 GPIO 以及串口…

LabVIEW 太阳能光伏发电系统智能监控

本文介绍了基于 LabVIEW 的太阳能光伏发电监控系统的设计与实现,着重探讨了其硬件配置、软件架构以及系统的实现方法。该系统能够有效提高太阳能光伏发电的监控效率和精确性,实现了远程监控和数据管理的智能化。 ​ 项目背景 在当前能源紧张与环境污染…

风光并网对电网电能质量影响的matlab/simulink仿真建模

这个课题早在一几年的时候比较热门,之前作电科院配电网的一个项目中也有所涉及,我把其中一部分经典仿真模型思路分享给大家,电能质量影响这部分,我在模型中主要体现的就是不同容量的光伏、风电接入,对并网点的电压影响…

大模型应用编排工具Dify之常用编排组件

1.前言 dify的核心能力有:支持接入常见的 LLM、工作流编排、知识库和聊天助手等,架构图如下: 本文将结合实际项目落地经验,针对工作流编排中的常用编排组件进行介绍,以及如何在后端调用工作流编排。 2.落地案例 某 …