操作系统WIN2016服务器,最简易就是Certify The Web生成,平时几秒搞定,但安装后生成时一直验证不过,提示无法解析DNS。服务器是机房采用DHCP自动分配,又到七牛云申请免费证书,验证文件能打开,但就是验证不过,域名管理权也没有就没办法通过DNS验证,经过多种方式操作无语失败,最后安装了WIN宝塔,有IP还是无法访问,换成127.0.0.1宝塔能打开,但需要手机验证,登陆失败,几种方法均失败放弃。最终采用OpenSSL生成成功部署,借此分享。
分析原因:一是服务器只分配了虚拟固定IP导致在哪里申请都验证不过,二是电信机房针对服务器端口有限制,无法像阿里云那样可以放行端口,服务顺上操作无用,第三是服务器远程指定了固定IP访问,为了能远程访问,只能留了另一台WIN2008服务器的固定IP来远程,以上多种限制导致玩啥啥不行......
关键点来了,网上找了多种工具下载OpenSSL安装包试居然成功了,对应下载Win64 OpenSSL v3.3.1一路下一步安装至完成,注意
首先打开如下目录,
1 | hosts |
文件C:\Windows\System32\drivers\etc 改为你的域名
127.0.0.1 www.www.com
1.下载OpenSSL安装包
64位:https://slproweb.com/download/Win64OpenSSL-3_3_1.exe
2.安装程序使用,这里注意要选择bin目录
3.命令行打开bin目录 C:\Program Files\OpenSSL-Win64\bin
这里特别注意在WIN系统nginx环境下生成的方式不一样,也能支持对应生成,在nginx环境下使用1024位,在WIN环境全使用长度2048位,两咱试过都支持。
这里以WIN系统环境为例
私钥 server.crt 长度2048
命令行打开bin目录 C:\Program Files\OpenSSL-Win64\bin
4.生成私钥命令
openssl genrsa -out server.key 2048
5.生成证书 命令
openssl req -new -x509 -key server.key -out server.crt -days 3650
像名字、省份、城市只能输入2位数,最下面server的域名一定要输入对
6.生成 server.pfx 文件
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
需要输入密码,可以先输入1234再确认,后面导入时用到
- 此时在 OpenSSL的安装目录下就会出现如下2个文件,其他2个是另一环境下生成的server.key 和server.pfx
把文件复制到哪个目录方便保存,比如我保存在网站下
7、部署导入证书
找开IIS管理器服务名,右边服务器证书打开
右边选择导入,证书文件找到刚才保存的位置 ,密码刚才设置的1234
导入密码时又遇上问题,不管怎么输入或者重生成,都提示“指定的网络密码不正确”,又经过新一轮的在搜索结果的测试,比较靠谱的解释是,在生成pfx时使用的openssl较高版本,这个版本默认的加密是AES256,而Windows Server 2016不支持这个版本加密,所以解决办法时换低版本的openssl。
老版本下载网址 https://www.openssl.org/source/old/index.html
通过使用换成openssl 1.1.1重新生成pfx,解决问题。
————————————————
评论(0)