zq
zq
发布于 2026-05-15 / 4 阅读
0
0

windows 命令行申请 SSL 证书

原理是 通过 git 自带的 git bash 使用 acme.sh 申请 SSL 证书

acme.sh 申请证书非常方便,但在需要linux环境, 如果服务器是 Windows,可以通过 git 自带的 git bash 提供

这个例子是在 windows 上申请证书流程

解决两个问题:

  1. windows 下使用 acme.sh

  2. 国内无法稳定访问 github

解决方案:

  1. 使用 gitee.com clone 到本地再安装

  2. 使用 git bash

具体步骤

  1. 打开 Git 自带工具 Git Bash ,[git 下载地址](https://git-scm.com/install/windows)

  2. 此时会弹出 MINGW64,这就是l模拟的linux环境

  3. 依次执行下面命令

安装 acme.sh

# 打开D盘
cd /d/
# 下载 acme.sh 镜像仓库 ,会下载到 D:/acme.sh/,后面可删除
git clone https://gitee.com/neilpang/acme.sh.git
# 安装 acme.sh ,命令会安装在 ~/acme.sh/ 对应windows下的 C:\Users\<用户名>\.acme.sh
/d/acme.sh/acme.sh --install -m 你的邮箱名@qq.com
# 设置服务器
acme.sh --set-default-ca --server letsencrypt

申请证书

DNS 认证方式,可以直接下载证书到本地,复制到服务器即可,但 HTTP 方式,需要将验证文件放到服务器,等待验证

方式一:使用 DNS 申请阿里云证书(必须拥有域名管理权限,可申请泛域名,无需在服务器执行)

# 以阿里云为例,腾讯云变量名是 DP_Id/DP_Key,Cloudflare 是 CF_Key/CF_Email
export Ali_Key="你的AccessKeyID"
export Ali_Secret="你的AccessKeySecret"
# 申请阿里云证书 ,腾讯云参数是 --dns dns_txyun ,Cloudflare 参数是--dns dns_cf
acme.sh --issue -d 你的域名 --dns dns_ali
# 成功后,证书会出现再 C:\Users\用户名\.acme.sh\域名

方式二:使用 HTTP 验证申请(适用于无域名管理权限,不可申请泛域名)

如果是在windows服务器上直接申请:

# 如果是在 windows 服务器上直接运行,假设 服务器根目录地址在 D:/apps/xxx.com,则对应的 地址就是 /D/apps/xx.com
~/.acme.sh/acme.sh --issue -d <你的域名> -w /D/apps/xx.com

在非服务器上申请

目前测试未通过,发现太麻烦,要将服务器目录映射到本地,建议直接在服务器装装个 git 运行。

~/.acme.sh/acme.sh --issue -d <你的域名> -w ~/acme.sh/<你的域名> --debug


评论