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

SSL证书自动申请脚本

文章目录

    • 介绍(直接翻译的)
      • 特点
    • 准备
      • 设置Powershell脚本权限
      • 安装Posh-ACME
      • 导入Posh-ACME模块
      • 设置Email
      • 申请DNS操作权限
    • 生成证书
    • 查看证书位置
    • 效果

介绍(直接翻译的)

PowerShell模块和ACME客户端,用于从具有 ACME 功能的证书颁发机构(例如Let’s Encrypt )创建公共信任的 SSL/TLS 证书。

特点

  • 支持多域 (SAN) 和通配符 (*.example.com) 证书
  • IP 地址证书(RFC 8738)(需要 ACME CA 支持)
  • 新证书的一体化命令,New-PACertificate
  • 轻松续订Submit-Renewal
  • 支持账户和证书的 RSA 和 ECDSA 密钥
  • 针对基于DNS 和 HTTP的挑战的内置验证插件。(欢迎提出请求)
  • 支持预先创建的证书请求 (CSR)
  • PEM 和 PFX 输出文件
  • 无需提升 Windows 权限(除非使用-Install交换机)
  • 跨平台 PowerShell 支持。(常见问题解答)
  • 帐户密钥滚动支持
  • OCSP Must-Staple支持
  • DNS 挑战CNAME 支持
  • 每个 ACME CA 支持多个 ACME 帐户
  • 为需要它的 ACME CA 提供外部账户绑定支持(指南)
  • 首选链支持使用替代 CA 信任链(指南)
  • PowerShell SecretManagement支持(指南)
  • 基于草案 04 的ARI(ACME 更新信息)支持。

准备

使用的是Powershell的一个模块,叫Posh-ACME,在使用前,如果电脑没有安装过,需要先安装该模块,该模块可以快速的帮助我们从Let's Encrypt那里申请为期90天的SSL/TLS证书,并且支持通配符。

设置Powershell脚本权限

这个没什么好描述的,就是一般系统默认不允许运行ps脚本代码,这里需要修改一下计算机脚本执行策略

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

安装Posh-ACME

该操作只要执行一遍即可!!!
该操作只要执行一遍即可!!!
该操作只要执行一遍即可!!!

# install for all users (requires elevated privs)
Install-Module -Name Posh-ACME -Scope AllUsers# install for current user
Install-Module -Name Posh-ACME -Scope CurrentUser

导入Posh-ACME模块

该操作只要执行一遍即可!!!
该操作只要执行一遍即可!!!
该操作只要执行一遍即可!!!

Import-Module Posh-ACME

设置Email

这里设置Email是方便后期,证书快要到期时,向你的邮箱发送过期提醒

# 本人真实email哦,别搞我😐
$email = 'admin@haozekang.com'

申请DNS操作权限

在域名托管商那里申请DNS操作API\Token\AK、SK,我的域名托管在阿里云那边,所以我使用的是账户的AK和SK。
具体支持哪些运营商,可以在DNS Plugins里查询,下面我将使用阿里云作为示范,使用example.com作为样例,各位宝宝🥰在使用的时候,记得替换。

给的模板脚本如下:

# 这里会让你手动输入SK,麻烦,我给改成String转SecureString
$secret = Read-Host "Secret" -AsSecureString
$pArgs = @{AliKeyId = 'asdf1234'AliSecret = $secret
}

我的:

# 这里是随便填写的,请替换成自己的
# 设置sk,并转换为SecureString类型
$secret = ConvertTo-SecureString "asdf1234asdf1234asdf1234111111" -AsPlainText -Force# 这里是随便填写的,请替换成自己的
# 设置参数,后面要让Posh-ACME自动化操作你的DNS解析,帮你做TXT记录值验证工作
$pArgs = @{AliKeyId = 'asdf1234asdf1234asdf1234'AliSecret = $secret
}

在这里插入图片描述

生成证书

进入正题,一下命令就是开始申请证书的一些操作了!~

New-PACertificate '*.example.com','example.com' -AcceptTOS -Plugin Aliyun -PluginArgs $pArgs -Contact $email

输入上面命令后,默认会再操作好DNS后,睡眠120秒,等待安全厂商做TXT记录校验,执行完成后,会有如下界面
在这里插入图片描述

获取证书校验状态信息,这里的status就是状态的意思,如果这里不是valid,就代表没有校验通过!

Get-PAOrder '*.example.com'

在这里插入图片描述

完成证书订单

  • 完成特定订单
Get-PAOrder '*.example.com' | Complete-PAOrder
  • 完成当前订单
# 
Complete-PAOrder

查看证书位置

Get-PACertificate | Format-List

在这里插入图片描述

每个文件对应的解释如下:

  • cert.cer (Base64 encoded PEM certificate)

PS:基于PEM格式,Base64编码的证书文件,转pem直接修改文件后缀

  • cert.key (Base64 encoded PEM private key)

PS:基于PEM格式,Base64编码的证书密钥文件,转pem直接修改文件后缀

  • cert.pfx (PKCS12 container with cert+key)

PS:基于PKCS12格式,加密的证书文件,包含了证书+密钥

  • chain.cer (Base64 encoded PEM with the issuing CA chain)

PS:基于PEM格式,Base64编码的证书链文件,转pem直接修改文件后缀

  • chainX.cer (Base64 encoded PEM with alternate issuing CA - chains)

PS:懒得翻译,我也用不到

  • fullchain.cer (Base64 encoded PEM with cert+chain)

PS:基于PEM格式,Base64编码的文件,转pem直接修改文件后缀,包含了证书+证书链

  • fullchain.pfx (PKCS12 container with cert+key+chain)

PS:基于PKCS12格式,加密的证书文件,包含了证书+密钥+证书链

我们一般使用nginx作为HTTP服务器的话,只需要关注前两个cert.cercert.key即可,cer文件改后缀为pem,我一般会把两个文件改一下命名在上传到nginx使用。

使用方法我就不提供了,百度浪浪一层,我就不废话了!

效果

在这里插入图片描述


http://www.mrgr.cn/news/37695.html

相关文章:

  • java 生成.h文件,java调用c语言dll动态链接库流程
  • Power Platform开发小技巧,一天一个APP, 如何快速搭建二维码识别器
  • 传奇GEE引擎版本如何封挂?GEE引擎设置简单的封挂脚本教程
  • Java8 IntStream流sum的Bug
  • Go语言开发后台框架不能只有CRUD还需有算法集成基础功能-GoFly框架集成了自然语言处理(NLP)分词、关键词提取和情感分析
  • 「JavaScript深入」聊一聊 new操作符具体干了什么?
  • 基于keras 的神经网络股价预测模型
  • 2024/9/27刷题记录(cf1800 - 2000)
  • 数据工程师岗位常见面试问题-1(附回答)
  • QML使用Qt自带软键盘例子
  • Rust SQLite 跨平台使用
  • 《向量数据库指南》——非结构化数据迁移服务的核心能力
  • `pattern = r“(\d+)(CNY|JPY|HKD|EUR|GBP|fen|cents|sen|eurocents|pence)“
  • 选择更轻松:山海鲸可视化与PowerBI的深度对比
  • idea插件通义灵码
  • CUDAExample: 波纹示例
  • 敏感字段加密 - 华为OD统一考试(E卷)
  • 了解网络的相关信息
  • 环形链表的约瑟夫问题
  • 华为 HCIP-Datacom H12-821 题库 (27)