Windows服务器跑IIS,SSL证书怎么装?跟Linux那套命令行完全不是一个路子,但只要理清导入和绑定两个环节,其实也挺干脆。
一、把证书导入系统证书存储
IIS不接受直接指定证书文件路径,你得先把.pfx格式的证书导入到Windows的证书存储区里。打开“运行“,输入mmc回车,进入控制台。点“文件“→“添加/删除管理单元“,选择“证书“,账户选“计算机账户“,点完成。
在左侧树形菜单里展开“证书(本地计算机)“→“个人“→“证书“,右键→“所有任务“→“导入“。选择你的.pfx文件,输入申请证书时设置的密码,下一步选择“将所有的证书放入以下存储“(默认就是个人),完成导入。
这里有个判断标准:导入成功后,在“个人“→“证书“下能看到你的域名条目,双击打开看“证书路径“标签页,状态显示“此证书没有问题“,就说明证书链完整。如果显示警告,多半是中间证书缺失,需要把CA提供的中间证书也导入到“中间证书颁发机构“文件夹下。
二、在IIS管理器中绑定SSL证书
打开IIS管理器,左侧找到你的网站,右键→“编辑绑定“。在弹出的窗口里点“添加“,类型选“https,端口默认443,“SSL证书“下拉框里选择刚才导入的证书,点确定。
如果你的服务器上跑了多个站点,每个站点都要绑定各自的SSL证书,这时候需要用到SNI。在绑定窗口里勾选“需要服务器名称指示“,这样IIS就能根据请求的域名来返回对应的证书了。IIS 8及以上版本才支持这个功能。
三、调整SSL协议版本
默认情况下IIS可能还开着SSL 3.0和TLS 1.0,这俩协议已经不安全了。通过注册表关闭它们:打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols,在SSL 3.0和TLS 1.0的Server子项里,把Enabled值设为0。
改完注册表需要重启服务器才能生效。建议在业务低峰期操作。如果你不想手动改注册表,可以用IIS Crypto这个工具,图形化界面勾选协议版本,一键应用配置,还能顺便做个SSL评级优化。
最后用浏览器验证一下,地址栏出现锁标志且没有证书警告提示,IIS的SSL证书部署就算完成了。如果访问时提示“此网站的安全证书存在问题“,优先检查证书的域名是否和实际访问的域名一致,包括www前缀的差别。