本教程只要是介绍Windows环境中利用wacs.exe给网站申请SSL免费证书和自动续期SSL证书
在Windows中2种环境部署SSL证书 一是IIS网站环境 二是Nginx环境
目前最新的wacs.exe下载[解压即用]:https://piis.lanzoul.com/ixBxf3oskn5e
一 :我们先说说Nginx环境下给网站申请SSL免费证书:
本节介绍的是使用 SelfHosting 验证(内存监听验证)申请证书不是使用filesystem(文件验证)
如果Nginx环境中使用filesystem(文件验证)申请SSL免费证书请看后面的四:Nginx环境使用filesystem(文件验证)申请SSL免费证书
Nginx环境cdn反向代理的网站使用filesystem(文件验证)方法更方便,因为全部网站目录都是相同,也不用去改造Nginx网站配置文件和解决端口冲突,
1.1网站配置改造
因为证书颁发机构验证时是连接80端口,而服务器的80端口被Nginx占用,就会使得证书申请失败
经过以上改造 服务器不会出现80端口冲突问题 也不影响网站正常运行和证书验证
1.2 防火墙开放8080端口
因为我们后面是用8080端口启动wacs.exe提供验证
1.3.1 命令行自动申请证书===推荐方法
wacs.exe我这里是安装到C:\win-acme目录中
命令行C:\win-acme目录并申请证书:
说明:piis.top,www.piis.top请替换为你自己的域名,多域名用英文逗号隔开
C:\nginx\ssl为证书存放路径
8080为wacs.exe的SSL验证端口 也可以改为你想设置的端口 如果改了端口也需要改1.1和1.2中的端口
运行命令后会在 C:\nginx\ssl中自动生成4个piis.top-**.pem文件
我们只需要用到***-chain.pem和***-key.pem
1.3.2 手动交互式申请证书----不推荐,这里列出来只是为了记录方法,请用1.3命令行形式更方便
另外1.3.1和1.3.2只用操作一种就可以了 不用2个方法都操作
cd /d C:\win-acme
wacs.exe --validationport 8080
进入交互式向导,按下面操作:
输入 M 回车 创建新证书
===续期证书选 R → 立即执行续期
立刻检查所有证书是否快到期
到期自动续期
平时不用管,任务计划会自动跑
输入 2 回车 Manual input手动
输入域名:gzsjzx.com,www.gzsjzx.com回车
回车
输入 4 回车 Single certificate单证书,一张证书包含piis.top和www.piis.top
输入 2 回车 [http] Serve verification files from memory
输入 2 回车 RSA key,Nginx 全兼容,兼容性最好,不出各种奇葩适配问题
输入 2 回车 PEM encoded files 就是专门给 Nginx 用的格式,必须选这个
输入 C:\Nginx\ssl 回车
输入 1 回车 None 私钥不设密码,Nginx 直接能用,不用后续额外配置
输入 5 回车 No (additional) store steps不再额外其他存储方式
输入 3 回车 No (additional) installation steps,不需要 IIS 绑定、也不用运行脚本,直接结束配置
输入 n 回车 Create certificate failed, retry? (y/n*) 不用打开协议文件,直接跳过
输入 y 回车 Do you agree with the terms? (y*/n) 需要先关闭80端口
输入邮箱fuwuqizuyong@piis.cn回车
二:给IIS网站申请免费证书
IIS是用filesystem文件验证 所以不需要做端口转发
给特定域名申请证书:
cd /d C:\win-acme
wacs.exe --source iis --host "seeisp.cn,www.seeisp.cn" --validation filesystem --installation iis --accepttos --emailaddress "fuwuqizuyong@piis.cn"
全部IIS的网站申请证书:
cd /d C:\win-acme
wacs.exe --source iis --validation filesystem --installation iis --accepttos --emailaddress "fuwuqizuyong@piis.cn"
IIS增强使用:
cd /d C:\win-acme
wacs.exe --source iis --validation filesystem --installation iis --store pemfiles --pemfilespath "C:\nginx\ssl" --accepttos --emailaddress "fuwuqizuyong@piis.cn"
说明后面加--store pemfiles --pemfilespath "C:\nginx\ssl"作用是:额外再导出一份 Nginx 用的明文 PEM 证书
三:证书批量续期
证书续签命令:
wacs.exe --renew
证书颁发机构也是通过连接80端口进行域名验证
证书自动续签是读取C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org中的*.renewal.json
每个证书对应一个 *.renewal.json 文件
如果部分网站域名已经不使用直接删除或修改对应的 *.renewal.json文件就可以了
或者建立一个计划任务 自动的去执行wacs.exe --renew就 可以达到全自动化续期
四:Nginx环境使用filesystem(文件验证)申请SSL免费证书
我们前面Nginx环境是使用 SelfHosting 验证(内存监听验证)的形式申请SSL证书,需要改造Nginx的网站配置文件解决端口冲突
如果我们改用filesystem(文件验证)申请SSL免费证书就不需要改造Nginx的网站配置文件,也不存在端口冲突
只用删除1.1网站配置文件中的红色部分
然后执行如下命令即可:
注意:C:\nginx\html为网站根目录,需要和Nginx的网站配置文件中的root保持一致
win-acme会自动创建文件夹:你的网站目录\.well-known\acme-challenge\
自动写入验证文件
证书颁发机构访问http://piis.cn/.well-known/acme-challenge/xxx文件进行验证
1.3.1的SelfHosting 验证(内存监听验证)方法申请证书可以提前配置好Nginx的网站模板 套用相同的模板
filesystem(文件验证)方法Nginx网站申请证书需要在命令行中指定网站目录
如果是cdn反向代理的网站这个方法更方便,因为全部网站目录都是相同,就不需要去修改命令行中的网站目录,也不用改造Nginx网站的配置文件和解决端口冲突问题
但是也需要简单改造Nginx网站配置文件:
在Windows中2种环境部署SSL证书 一是IIS网站环境 二是Nginx环境
目前最新的wacs.exe下载[解压即用]:https://piis.lanzoul.com/ixBxf3oskn5e
一 :我们先说说Nginx环境下给网站申请SSL免费证书:
本节介绍的是使用 SelfHosting 验证(内存监听验证)申请证书不是使用filesystem(文件验证)
如果Nginx环境中使用filesystem(文件验证)申请SSL免费证书请看后面的四:Nginx环境使用filesystem(文件验证)申请SSL免费证书
Nginx环境cdn反向代理的网站使用filesystem(文件验证)方法更方便,因为全部网站目录都是相同,也不用去改造Nginx网站配置文件和解决端口冲突,
1.1网站配置改造
| server { listen 80; server_name piis.top www.piis.top; # 关键:把验证请求转发给 wacs.exe 的 8080 端口 location /.well-known/acme-challenge/ { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # 其他请求自动跳HTTPS(不影响证书申请) location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; #网站域名,请修改server_name对应的值,多域名用空格隔开!!!!!!!!!!! server_name piis.top www.piis.top; index index.php index.html index.htm default.php default.htm default.html; root C:/nginx/html; error_page 403 /50x.html; error_page 404 /50x.html; error_page 502 /50x.html; #SSL的pem和key的路径(./ssl/=C:\nginx\ssl\)请修改为!!!!!!! ssl_certificate ./ssl/piis.top-chain.pem; ssl_certificate_key ./ssl/piis.top-key.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; #防止有人用http://域名:443访问 error_page 497 https://$host$request_uri; location / { …… { { |
经过以上改造 服务器不会出现80端口冲突问题 也不影响网站正常运行和证书验证
1.2 防火墙开放8080端口
因为我们后面是用8080端口启动wacs.exe提供验证
1.3.1 命令行自动申请证书===推荐方法
wacs.exe我这里是安装到C:\win-acme目录中
命令行C:\win-acme目录并申请证书:
| cd /d C:\win-acme wacs.exe --target manual --host "piis.top,www.piis.top" --validationport 8080 --store pemfiles --pemfilespath "C:\nginx\ssl" --installation none --accepttos --emailaddress "fuwuqizuyong@piis.cn" |
C:\nginx\ssl为证书存放路径
8080为wacs.exe的SSL验证端口 也可以改为你想设置的端口 如果改了端口也需要改1.1和1.2中的端口
运行命令后会在 C:\nginx\ssl中自动生成4个piis.top-**.pem文件
我们只需要用到***-chain.pem和***-key.pem
1.3.2 手动交互式申请证书----不推荐,这里列出来只是为了记录方法,请用1.3命令行形式更方便
另外1.3.1和1.3.2只用操作一种就可以了 不用2个方法都操作
cd /d C:\win-acme
wacs.exe --validationport 8080
进入交互式向导,按下面操作:
输入 M 回车 创建新证书
===续期证书选 R → 立即执行续期
立刻检查所有证书是否快到期
到期自动续期
平时不用管,任务计划会自动跑
输入 2 回车 Manual input手动
输入域名:gzsjzx.com,www.gzsjzx.com回车
回车
输入 4 回车 Single certificate单证书,一张证书包含piis.top和www.piis.top
输入 2 回车 [http] Serve verification files from memory
输入 2 回车 RSA key,Nginx 全兼容,兼容性最好,不出各种奇葩适配问题
输入 2 回车 PEM encoded files 就是专门给 Nginx 用的格式,必须选这个
输入 C:\Nginx\ssl 回车
输入 1 回车 None 私钥不设密码,Nginx 直接能用,不用后续额外配置
输入 5 回车 No (additional) store steps不再额外其他存储方式
输入 3 回车 No (additional) installation steps,不需要 IIS 绑定、也不用运行脚本,直接结束配置
输入 n 回车 Create certificate failed, retry? (y/n*) 不用打开协议文件,直接跳过
输入 y 回车 Do you agree with the terms? (y*/n) 需要先关闭80端口
输入邮箱fuwuqizuyong@piis.cn回车
二:给IIS网站申请免费证书
IIS是用filesystem文件验证 所以不需要做端口转发
给特定域名申请证书:
cd /d C:\win-acme
wacs.exe --source iis --host "seeisp.cn,www.seeisp.cn" --validation filesystem --installation iis --accepttos --emailaddress "fuwuqizuyong@piis.cn"
全部IIS的网站申请证书:
cd /d C:\win-acme
wacs.exe --source iis --validation filesystem --installation iis --accepttos --emailaddress "fuwuqizuyong@piis.cn"
IIS增强使用:
cd /d C:\win-acme
wacs.exe --source iis --validation filesystem --installation iis --store pemfiles --pemfilespath "C:\nginx\ssl" --accepttos --emailaddress "fuwuqizuyong@piis.cn"
说明后面加--store pemfiles --pemfilespath "C:\nginx\ssl"作用是:额外再导出一份 Nginx 用的明文 PEM 证书
三:证书批量续期
证书续签命令:
wacs.exe --renew
证书颁发机构也是通过连接80端口进行域名验证
证书自动续签是读取C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org中的*.renewal.json
每个证书对应一个 *.renewal.json 文件
如果部分网站域名已经不使用直接删除或修改对应的 *.renewal.json文件就可以了
或者建立一个计划任务 自动的去执行wacs.exe --renew就 可以达到全自动化续期
四:Nginx环境使用filesystem(文件验证)申请SSL免费证书
我们前面Nginx环境是使用 SelfHosting 验证(内存监听验证)的形式申请SSL证书,需要改造Nginx的网站配置文件解决端口冲突
如果我们改用filesystem(文件验证)申请SSL免费证书就不需要改造Nginx的网站配置文件,也不存在端口冲突
只用删除1.1网站配置文件中的红色部分
然后执行如下命令即可:
| cd /d C:\win-acme wacs.exe --target manual --host "piis.cn,www.piis.cn" --validation filesystem --webroot "C:\nginx\html" --store pemfiles --pemfilespath "C:\nginx\ssl" --installation none |
win-acme会自动创建文件夹:你的网站目录\.well-known\acme-challenge\
自动写入验证文件
证书颁发机构访问http://piis.cn/.well-known/acme-challenge/xxx文件进行验证
1.3.1的SelfHosting 验证(内存监听验证)方法申请证书可以提前配置好Nginx的网站模板 套用相同的模板
filesystem(文件验证)方法Nginx网站申请证书需要在命令行中指定网站目录
如果是cdn反向代理的网站这个方法更方便,因为全部网站目录都是相同,就不需要去修改命令行中的网站目录,也不用改造Nginx网站的配置文件和解决端口冲突问题
但是也需要简单改造Nginx网站配置文件:
| server { listen 80; server_name piis.top www.piis.top; # 让验证文件 正常访问,不跳HTTPS location /.well-known/acme-challenge/ { root C:\nginx\html; # 必须和你命令里的 --webroot 一样 allow all; } # 其他请求 自动跳HTTPS location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; #网站域名,请修改server_name对应的值,多域名用空格隔开!!!!!!!!!!! server_name piis.top www.piis.top; index index.php index.html index.htm default.php default.htm default.html; root C:/nginx/html; error_page 403 /50x.html; error_page 404 /50x.html; error_page 502 /50x.html; #SSL的pem和key的路径(./ssl/=C:\nginx\ssl\)请修改为!!!!!!! ssl_certificate ./ssl/piis.top-chain.pem; ssl_certificate_key ./ssl/piis.top-key.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; #防止有人用http://域名:443访问 error_page 497 https://$host$request_uri; location / { …… { { |
文章来源:
网络小编D
版权声明:
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站立刻删除。
