IIS证书转Nginx证书
要求:CA服务器、OpenSSL
创建证书请求文件
新建req.inf
1 | [Version] |
CN:域名
DNS:域名
IPAddress:服务器地址(纯内网访问填内网地址,外部访问填公网地址)
管理员模式CMD执行certreq命令
1 | certreq -new C:\Users\server2019\Desktop\req.inf C:\Users\server2019\Desktop\req_new.txt |
提交证书申请
打开req_new.txt,访问CA服务器的Web界面(用域管理员账户登录)
选择“申请证书” –> “高级证书申请”,粘贴req_new.txt中的内容,证书模板选择Web服务器,点击提交。下载证书链,获得certnew.p7b
导出带私钥的PFX证书
打开p7b文件,安装证书
“本地计算机” –> “下一页” –> “将所有的证书都放入下列存储” –> “浏览” –> “受信任的根证书颁发机构” –> “下一页” –> “完成”
WIN + R 打开mmc,“文件” –> “添加管理单元” –> “证书” –> “添加” –> “计算机账户” –> “下一页” –> “本地计算机” –> “完成”
找到受信任的根证书颁发机构 – 证书 ,找到刚才导入的证书,证书图标上带小钥匙,说明带密钥
右键证书 – 所有任务 – 导出 – 下一页 – 是,导出私钥 – 下一页 – 不做修改,直接下一页 – 勾选密码 – 设置一个密码 – 加密:AES-256-SHA256 – 确定 – 选择一个保存的位置 – 下一页 – 完成
转换证书
非常不建议用网上的什么在线转换证书,很垃圾。大部分只能导出半截,要么只能私钥,要么只能公钥。
进入安装好的OpenSSL目录,默认为C:\Program Files\OpenSSL-Win64\bin
,在这个目录打开cmd
输入这3条命令用于生成服务器证书、CA证书、私钥(生成的文件在bin目录,要改的话自己指定-out的目录)
1 | openssl pkcs12 -in C:\Users\Administrator\Desktop\ssltest.cn.pfx -nokeys -clcerts -out ssltest.pem |
Enter Import Password:(之前导出PFX时输入的密码)
Tips:私钥要生成未加密的,不然Web服务无法用。如果要在网络上传输私钥,用加密的私钥。密码单独以安全的方式发送给对方,对方用下面的命令解密密钥
1 | openssl rsa -in ssltest_enc.key -out ssltest.key |
校验密钥哈希值的命令
1 | openssl rsa -in ssltest.key -outform DER | openssl dgst -sha256 |
验证
需要安装CA证书,否则还是会显示连接不安全(即客户端要认为颁发者是可信的)如果没有装,访问CA服务器Web界面下载CA证书,安装到计算机的受信任的根证书颁发机构。域环境CA服务器会自动下发证书到域内所有计算机。