前言
站点搭建在Windows server 2008 r2机器上,原来一直都是走的是http的,最近想弄起https,本来是挺简单的iis弄个https嘛,
- 在阿里云申请一个免费CA证书,购买地址 点我,之后就是申请,填写申请信息的时候需要勾选这个,这样他自己就会添加一条域名解析记录,第一次我申请没勾选,还自己弄等了半天没申请好,勾选之后申请很快的

- 然后导入到iis中


- 需要注意的是必须勾选允许导出此证书,否则绑定的时候将会出现异常
- 指定的登录会话不存在。可能已被终止。 (异常来自 HRESULT:0x80070520)
- 然后绑定选择证书即可

- 浏览器访问 https://www.zhanghuanglong.com/ 是成功的,我以为就没事了,结果偶尔一次打开firefox自己访问结果不能访问出现以下问题
- 连接到 www.zhanghuanglong.com 时发生错误。 在此 SSL 套接字上不允许重新协商。 错误代码: SSL_ERROR_RENEGOTIATION_NOT_ALLOWED
- 然后我试了Edge和Chrome都是打开正常,证书都ok,
尝试解决
网上有可以修改firefox的config来解决问题,但是不可能所有人都要这么干。所以必须要解决根本问题,我对比了和正常的另一个linux搭建的https发现,不同的是TLS版本不同,一个是打不开的是TLS1.0
,且TLS加密套件是TLS_RSA_WITH_AES_128_CBC_SHA
,而打得开是TLS1.2
,加密套件 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
,所以我,
- 先进行修改TLS版本为1.2
运行 -> regedit -> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
-> 原来有一个SSL2.0的,所以新建一个TLS1.2
并在Server和Client都新建下面两个项,并把源码的ssl2.0的client 的DisabledByDefault设置为0- DisabledByDefault -> 0
- Enabled -> 1
- 修改TLS加密套件
运行 -> gpedit.msc -> 管理模板 -> 网络 -> SSL配置设置
可以看见里面的是未配置,自己可以配置密码套件顺序,每次设置之后需要重启电脑,我自己测试了不下六七种加密方式都不行, - 依旧firefox还是报这个,所以无解
解决办法
后来测试过在windows server 2008 r2 sp1机器上搭建的https,firefox访问没问题
所以安装 Windows Server 2008 R2 Service Pack 1 的补丁 windows6.1-KB976932-X64.exe 下载地址
https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/windows6.1-KB976932-X64.exe
https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/windows6.1-KB976932-X86.exe
参考链接