0%

关于在windows下使用win-acme更新https证书问题

缘由

目前,公司使用的是 let’s encrypt提供的免费https证书,由于在windows下,因此使用win-acme工具进行证书管理。

证书更新问题

let’s encrypt生成的证书有效期只有3个月,因此需要每3个月更新一次。在这之前(长达一年半之久)都是我上服务器手动更新的,这就导致了有一次忘记了时间,证书未及时更新,凑巧领导访问网站发现无法打开…这些暂且不说。

因此是有必要使用定时更新脚本的,实际上win-acme在第一次创建证书后会自动创建定时任务,从而达到自动更新证书的目的。

但因为一些原因,比如我选的域名认证方式是web路径认证(dns认证方式应该不会存在此问题),因此更新证书时需要将域名根目录指向认证文件。

由于平时域名都是指向对应业务的,这里就需要临时改一下,更新完后再改回去。找到问题原因,问题就解决了一半。

以下为另一半,批处理脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
rem ******author by yxy*******
net stop nginx
cd D:\Program Files\nginx-1.16.1\conf\vhost\
D:
ren spepc.wb.conf spepc.wb.conf.temp
ren spepc.wb.conf.auto spepc.wb.conf

net start nginx
timeout /t 3
cd D:\spepc-maintenance-prod\win-acme\
D:\spepc-maintenance-prod\win-acme\wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"

copy D:\spepc-maintenance-prod\win-acme\motecloud\*.pem D:\spepc-maintenance-prod\zs\

rem *****还原重起服务*****

cd D:\Program Files\nginx-1.16.1\conf\vhost\
D:
net stop nginx
ren spepc.wb.conf spepc.wb.conf.auto
ren spepc.wb.conf.temp spepc.wb.conf
net start nginx

这样使用windows自带的计划任务,每3月执行一次即可。

坚持原创技术分享,您的支持将鼓励我继续创作!
YANG 微信支付

微信支付

YANG 支付宝

支付宝