今天有个客户给我反馈了一个在网站安装SSL证书后,网站https显示异常的问题,就是在谷歌浏览器下,会提示“您的连接存在安全隐患”,访问被阻止,如下:
如果继续强制浏览,会提示“你与此网站之间建立的连接并非完全安全,攻击者可能能够看到您正在此网站上浏览的图片,并通过编辑这些图片让你受骗 ”,如下:
已经很少遇到这种情况了,而且在其他浏览器下都没遇到过,其他网站申请的相同类型的SSL证书也没遇到过,所以排除了是证书的问题;网站上有些http类型的资源,全部替换成https的资源后,还是有这个提示,最后估计是服务器配置这块有点问题了;后来百度了下这个问题,说得最多的是IIS web服务器相关的问题,想想平时帮客户做网站已经基本不用IIS服务器了,原因那应该出在服务器配置上了。
下面是作者收集整理后的具体解决方法,如果你的网站用的是IIS服务器,网站要升级成https,这个方法能帮你解决到这个问题。
1、下载服务器安全管理工具 IIS Crypto,点击下面的按钮下载到IIS服务器:
2、解压后,直接双击IISCrypto.exe进行安装,按照下面的选项勾选,然后点击“Apply”保存设置,然后点击“Reboot”重启服务器即可。
重新配置后,网站证书显示正常了
IIS Crypto工具介绍
IIS Crypto 是一个免费工具,使管理员能够在 Windows Server 2008、2012、2016、2019 和 2022 上启用或禁用协议、密码、哈希和密钥交换算法。
允许您重新排序 IIS 提供的 SSL/TLS 密码套件、更改高级设置、通过单击实施最佳实践、创建自定义模板和测试您的网站。
功能
1、单击以使用最佳实践保护您的网站。
2、在进行任何更新之前备份注册表。
3、更改高级注册表设置。
4、内置最佳实践、PCI 4.0、严格和 FIPS 140-2 模板。
5、创建可在多个服务器上保存和运行的自定义模板。
6、恢复为原始服务器的默认设置。
7、阻止溺水、僵局、怪胎、贵宾犬和野兽攻击。
8、启用 TLS 1.1、1.2 和 1.3*。
9、启用前向保密。
10、对密码套件重新排序。
11、禁用弱协议和密码,例如 SSL 2.0、3.0、MD5 和 3DES
12、用于测试配置的站点扫描程序。
IIS上部署多个SSL证书绑定https和使用TLS1.0 TLS1.1 TLS1.2协议
近日站长尝到了转https的好处,这几天也顺便把公司服务器上面的几个网站都由http转成https。实际操作发现IIS弄个SSL还是很多坑的。下面提两点,给大家一点帮助。具体绑定SSL证书的操作很简单,不懂百度一下很多教程的。
坑1:服务器要windows server 2012 + IIS8.5以上才能多个域名同时部署SSL,否则很麻烦。
由于公司的服务器是Windows server 2012,刚好能方便的多个域名同时绑定https,不然真的很麻烦。我建议不得不用Windows服务器的话,建议大家重装到2012以上的版本吧。
还有绑定https域名时,记得勾选上“需要服务器名称指示(N)”,这也是一个小坑,不勾选的话,只能绑定的是第一个绑定的SSL证书。
坑2:IIS默认的是SSL 2.0协议,使用了RC4加密密钥的,这样会造成PCI DSS和Apple ATS规范不及格。
我们需要禁用SSL v2.0、SSL v3.0协议和低强度加密密钥。使用TLS1.0 TLS1.1 TLS1.2版本。
这里如果要改的话,要去注册表改,很麻烦的。我找到了IIS Crypto GUI这个软件很方便就能修改。
直接点“Best Practices”,推荐设置,然后点“Apply”应用即可,要重启一下系统。
注意! 注意!
修改SSL相关的注册表可能会导致windows 服务器无法进系统,使用IIS Crypto设置错了也会导致进不了系统。所以需要先备份和系统快照。
最后是我碰到了lsass.exe进程占用CPU过高的问题,
Key Exchanges 只开启PKCS可以解决。原因不明。
Lsass.exe high CPU usage and causing request queuing on webserver
TLS 设置 c#
c#,asp.net4.0-4.4 是
在发送HTTP请求前加入下行代码
ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;
4.5 是
如果是4.5以上版本可以直接使用
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;