使用westssl工具实现自动更新SSL证书的流程

SSL证书默认有效期分3个月和1年两种。您必须在证书到期前的30个自然日内续费并更新证书,才能延长证书的服务时长。证书续费时,
会颁发一个新的证书,您收到新证书后需要手工更新到服务器上。部分证书支持一次性购买多年,但仍然是每次签发一年的证书,到期前30天左右会自动重新签发。

如果管理的证书较多,经常去手工更新不但麻烦而且容易遗漏或出错。因此提供了本工具来实现证书续费重新颁发后的自动更新流程。


要想实现证书的自动化续费,需要满足条件:

  1. 自动化DNS验证 (SSL证书和域名在相同的会员帐号下,如果是腾讯、阿里的域名,支持在我司控制面板中设置apikey的方式来完成验证,
    如果域名在第三方平台,建议转入我司统一管理,否则需要在重签证书时再次验证)

  2. 证书重新签发后能自动更新证书。(如果证书是用于的虚拟主机/高防服务器/亚数云服务器,在完成证书续费重新颁发后,
    系统会自动更新证书不需要任何操作。证书用于普通云服务器或第三方的服务器场景时,可通过本工具和任务计划实现自动更新ssl证书 ,
    使用此工具您的证书需在我司
    申请或者托管证书在我司.

  3. 能满足以上条件的场景,在购买时选中“自动续费”功能,就能一劳永逸。需要确保会员余额足够。


Westssl工具有Windows和linux两个版本. 此工具用于普通云服务器或第三方的服务器场景,可实现证书重签后对证书自动更新,同时也支持通过命令行方式调用API
批量
购买新证书(见文尾帮助)。

环境要求:服务器上必须已经部署过ssl证书,web服务为iis/apache/nginx中的一种. 
(证书的首次部署不属于本文介绍的范围,一般来说windows主机可通过我司提供的网站管理助手部署,Linux主机一般通过宝塔面板部署

使用westssl工具需要设置ssl证书的专用api密钥,可以在"会员管理中心---账号管理---设置中心---SSL证书API密钥设置,这里设置"或者重置 .

(提交工单由我司帮您设置westssl自动更新API密钥必须提供至工单中)

image.png


linux(centos)系统下载方法 ssh远程服务器,然后执行  

wget http://downinfo.myhostadmin.net/westssl/westssl.zip -O /root/westssl.zip && unzip -o /root/westssl.zip && rm -f /root/westssl.zip && chmod +x /root/westssl   

输入 /root/westssl 使用

Windows服务器系统下载方法 ,远程服务器,使用浏览器下载  http://downinfo.myhostadmin.net/westssl/westssl.exe  (如下载提示无法安全下载,请右键点击“将链接另存为”。) , 建议保存在 d:\cert 目录。

cmd命令行切换到 d:\cert   .输入westssl.exe 使用    


westssl版本号:westssl version 1.0.50


1.下载完毕后,首先进行初始化 (重要)  初始化完成会自动生成 .westssl\config.ini,请勿删除

/root/westssl init  

 image.png

重启重载web服务命令可以选择对应编号,也可以自己手动输入,请务必据实输入!

2.查看当前服务器证书列表   /root/westssl show   

image.png

宝塔和建站助手创建的web环境,系统会识别相关证书,不需要手工添加,可以忽略本步骤。


非宝塔和建站助手创建的web环境, 需要手动添加ssl证书路径,才能实现自动更新ssl证书。 在show命令下,输入  1 表示添加一个域名证书。

image.png


3.您可以通过计划任务方式,完成自动更新证书 : 更新证书命令  /root/westssl update  

linux任务计划设置方式 

1.宝塔环境通过面板任务计划添加每天定时更新

脚本内容:

cd /root 

/root/westssl update


image.png

保存任务计划即可每天自动更新ssl证书


2. Linux非宝塔环境,使用命令“crontab -e”添加任务计划 

30 1 * * * /root/westssl update

以上命令代表每天1点30分,执行自动更新ssl证书



Windows任务计划设置方式

任务计划程序添加定期运行此工具

在管理员身份运行cmd 执行:

image.png

 

schtasks /create /RU system /SC DAILY /F /TN westssl_auto_update /TR  "D:\cert\westssl.exe update -c D:\cert\.westssl\config.ini"  /ST 01:00

其中:
westssl_auto_update 计划任务名称
"D:\cert\westssl.exe update -c D:\cert\.westssl\config.ini" 要执行的程序及参数
/ST 01:00 每天1:00执行

成功创建计划任务后即可每天1点自动更新ssl证书.


注:

1、 westssl update 在windows系统下会在 .westssl 下级目录生成westcertapp.exe执行文件,此是正常更新文件放心使用。

      若此文件执行失败IIS对应站点证书会更新失败,会影响网站正常访问。


2、westssl update 这个命令会自动检测当前服务器上所有证书的到期时间,如果离到期时间小于30天,或过期30天以内的,

     会自动调用SSL证书api接口,来检查相关的域名有没有新的证书颁发成功,如果有,则自动下载新证书进行替换,

     替换后会执行相关的命令来重启IIS/apache/ngix以使新证书生效。

3、如果通过IIS手动导入SSL证书时,证书存储必须选择  个人, 否则 westssl无法识别

V0%U$O29`N15MFDS`SCR`L6.jpg


-----------------------------------------------------------------------------------------------------------------

用westssl来批量购买证书的流程:(注:可以输入westssl.exe -h来显示帮助提示,接iisue命令表示申请新证书)

D:\cert>westssl.exe issue    

缺少必要参数!

申请证书

Usage:

  westssl issue [flags]


Flags:

  -c, --config string   Config file (default "config.ini")

      --dns             SSL证书DNS验证方式 [file,dns 验证必须二选一]

  -d, --domain string   [必填]申请SSL证书域名;此参数支持3种模式:

                        1) 单域名.

                        2) 多个域名,必须用逗号(,)分隔.

                        3) 域名批量购买,必须是域名列表文件完整路径,要购买的域名放在这个文件中一行一个.

      --file            SSL证书文件验证方式 [file,dns 验证必须二选一]

  -h, --help            help for issue

  -t, --type string     [必填]常见证书类型:

                        1) 通用型DV: dv-350

                        2) 试用90天DV: free-trial


                        更多产品型号请访问API接口查询 https://console-docs.apipost.cn/preview/4e5d940c9be19cda/73e3028374812fc5?target_id=9d27cd1e-6bfa-4665-9a8f-e421b7707a1c



D:\cert>westssl.exe issue   --dns  -t free-trial -d mytest123.com

或者 :

D:\cert>westssl.exe issue   --dns  -t free-trial -d D:\cert\mydomains.txt   把要购买的域名都放在这个txt文件中批量购买。


-----------------------------------------------------------------------------------------------------------------

用westssl来批量下载购买的证书

D:\cert>westssl.exe online

在线SSL证书下载


Usage:

  westssl online [flags]


Flags:

  -c, --config string   Config file (default "config.ini")

      --domain string   下载域名对应证书:

                        1、多个域名必须用逗号(,)分隔.

                        2、all 表示下载所有证书.

                        3、证书批量下载列表文件完整路径,要下载的证书域名放在这个文件中一行一个.

  -h, --help            help for online

      --show            查看在线证书列表


D:\cert>westssl.exe online --domain mytest123.com

或者 :

D:\cert>westssl.exe online --domain D:\cert\mydomains.txt   把要下载的证书域名都放在这个txt文件中批量下载。



D:\cert>westssl.exe online --show  可查看在线的证书列表


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

常见问题 :

api result: token 时间超时:请检查服务器时间是否为背景时间 .



日期:2023-11-02

打印 】