命令行工具部署证书

cmcli 是一种命令行使用程序,旨在消除编写代码以与 Open API 交互的需要,从而生成密钥并简化证书的获取。适用于Linux,Windows和macOS的32位和64位版本。提供证书注册、取回、续期、吊销及格式转换功能。


前提条件

  • 需要事先创建 OpenAPI 授权码,参考创建方法
  • DV 证书需要已手动下单成功,OV、EV 证书需要组织及域名的预审核通过。

下载安装

登录 CertCloud,进入【自动化】->【命令行工具】页面,即可下载Windows,Linux,macOS三种版本。

快速开始

Ubuntu + Nginx:

# 请注意,以下所有{}字段,请替换成实际的值
# 1. 下载 linux 安装包 deb 文件,进行安装
$ sudo dpkg -i cmcli_{latest-version}-2_amd64.deb

# 2. 手动申请,申请域名为:“domain.com” 的 SSL 证书, 举例:有效期为1天
$ cmcli enroll -u "https://api.certcloud.cn" -t {secret_key} -a {account_id} --app-info "MyExampleCLI" --cn domain.com --san-dns www.domain.com --key-file /etc/nginx/certs/domain.key --cert-file /etc/nginx/certs/domain.crt --validity 1 --key-password {password}

# 3. 自动化部署,使用系统工具 crontab, 设置定时任务。举例:在每天0点05分,定时进行证书重颁发
$ crontab -l | { cat; echo "5 0 * * * $HOME/cmcli/cli_nginx.sh {secret_key} {account_id} {domain.com} {domain_sans} > $HOME/cmcli/cron.log 2>&1";} | crontab -

# 4. 测试站点,确认证书信息

Windows + IIS + PowerShell(以管理员身份打开)

# 请注意,以下所有{}字段,请替换成实际的值
# 1. 下载对应版本的CLI后, 切换路径到cmcli所在目录,进行重命名
PS cd {path-to-cmcli-{Version}-Windows-x86_64.exe}
PS mv cmcli-{Version}-Windows-x86_64.exe cmcli.exe

# 2. 开始手动申请,申请域名为:“domain.com”的 PFX 证书, 有效期为1天
PS ./cmcli.exe enroll -u https://api.certcloud.cn -t {secret_key} -a {account_id} --app-info {MyExampleCLI} --cn {domain.com} --san-dns {www.domain.com} --format pfx --file ./{domain.pfx} --validity 2 --key-password {password}

# 3. 将 PFX 证书安装到系统证书池(待更新)
# PS ./IIStool.exe install --format pfx --file domain.pfx

# 4. 为 IIS 站点部署新证书, 以下以 默认站点 为例,为 端口 8081 配置 TLS/SSL 证书
PS ./IIStool.exe --site "{Default Web Site}" --ip "{127.0.0.1}" --port "{8081}" --host "{domain.com}" --hash "{a48e82841695604cb11ebaa5fcef4d9a400df505}"

# 5. 设置定时任务,每天0点5分,重颁发新证书并部署
PS schtasks.exe /create /SC DAILY /TN "{IISAutoOps}" /F /ST "00:05" /RU "$env:USERDOMAIN\$env:USERNAME" /RP "{UserPassword}" /TR "{/path/to/cmcli.exe} enroll -u https://api.certcloud.cn -t {secret_key} -a {account_id} --app-info {MyIISAuto} --cn {domain.com} --san-dns {www.domain.com} --format pfx --file .{/domain.pfx} --validity 1 --key-password {password}"

# 6. 为方便以后使用,可将 {/path/to/cmcli-dir} 目录添加到用户环境变量
PS $path = [Environment]::GetEnvironmentVariable('PATH', 'user')
PS $newpath = $path + ';{/path/to/cmcli-dir}'
PS [Environment]::SetEnvironmentVariable("PATH", $newpath, 'user')

其他用法请查看以下链接


使用 OpenAPI 授权码 申请证书

通过授权码,使用 cmcli 进行证书自动化申请。

使用 OpenAPI 授权码 下载证书和加密私钥

使用 cmcli 进行证书和私钥下载。

使用 OpenAPI 授权码 进行证书续期

使用 cmcli 对即将过期的证书进行自动化续期。

使用 OpenAPI 授权码 进行证书吊销

使用 cmcli 对由于私钥泄露等其他原因的无效证书进行快速吊销。

使用 cmcli 转换证书格式

使用 cmcli 转换证书格式,支持PEM、JKS、PFX三种格式。

cmcli 返回结果状态

集成 cmcli 时,依据返回值进行结果判断。

February 26, 2021