我们知道,在Windows的IIS服务器上,使用域名证书开启HTTPS并不是非常方便,在IIS 7.5及之前的版本上,添加HTTPS站点时,并不能指定主机头(即域名),需要加完之后,到IIS的配置文件中去修改配置,增加了一定的难度;而且如果之后相关的配置有变动,也可能会影响到之前的HTTPS站点,有很多坑。而域名证书到期,需要换证书的话,如果之前添加过很多个HTTPS站点,都会受到影响,需要一个一个的站点重新选择证书,重新修改IIS的配置文件,是一个让人头疼的操作。
那如果是域名证书到期了,有没有什么办法可以简化我们的操作呢?答案是有的,那就是使用证书续订操作。
证书续订,需要的证书格式是cer的,我们以从阿里云上申请的通配符域名证书为例来说一下。从阿里云后台下载下来的域名证书格式,有pem和pfx格式的,唯独没有cer格式的,需要自己转换一下。下面先说下格式转换吧:
pem转cer,需要使用openssl,另外需要key文件。一共需要进行3次转换操作,才能转成cer格式:
1.先从pem转到p12,之后需要设置密码:
代码语言:javascript复制OpenSSL> pkcs12 -export -out a.p12 -in 1.pem -inkey 1.key
Loading 'screen' into random state - done
Enter Export Password:
Verifying - Enter Export Password:
2.从p12转为crt格式,输入第1步设置的密码:
代码语言:javascript复制OpenSSL> pkcs12 -in a.p12 -out b.crt -nokeys -clcerts
Enter Import Password:
MAC verified OK
3.最后一步,从crt转为cer:
代码语言:javascript复制OpenSSL> x509 -inform pem -in b.crt -outform der -out c.cer
OpenSSL>
使用OpenSSL进行证书格式转换
格式转完之后,把生成的cer文件上传到服务器,随便找个地方放着。打开IIS管理器,选中IIS管理器的网站根,在右侧功能区,打开IIS下的“服务器证书”
打开服务器证书
选中要续订的证书,之后点击右侧栏的“续订”
选择续订
打开“续订现有证书”对话框,选择最后一项:“完成证书续订申请”
完成证书续订申请
选择我们转换为cer的新证书
选择证书
点击“完成”按钮,完成续订申请
完成
之后就已经完成了,我们随便打开一个https网站,查看下证书详情,会发现过期日期已经是最新的了。
Windows版OpenSSL下载:点击下载OpenSSL
本文作者:老徐
本文链接:https://cloud.tencent.com/developer/article/1405648
转载时须注明出处及本声明