使用 OpenAPI 授权码 申请证书
通过授权码,使用 cmcli 进行证书自动化申请。
cmcli 是一种命令行使用程序,旨在消除编写代码以与 Open API 交互的需要,从而生成密钥并简化证书的获取。适用于Linux,Windows和macOS的32位和64位版本。提供证书注册、取回、续期、吊销及格式转换功能。
登录 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')
通过授权码,使用 cmcli 进行证书自动化申请。
使用 cmcli 进行证书和私钥下载。
使用 cmcli 对即将过期的证书进行自动化续期。
使用 cmcli 对由于私钥泄露等其他原因的无效证书进行快速吊销。
使用 cmcli 转换证书格式,支持PEM、JKS、PFX三种格式。
集成 cmcli 时,依据返回值进行结果判断。