下面我会详细讲解如何在 Windows Server 2016 IIS 10 上设置 HTTPS HTTP/2 并跑分到 A+,包括以下几个步骤:
1. 生成SSL证书
要使用HTTPS,首先需要为您的网站生成SSL证书。您可以使用免费的Let's Encrypt证书,也可以购买商业SSL证书。在这里我们使用Let's Encrypt证书来演示。
步骤1:从GetCertMgr下载工具包,解压后运行 GetCertMgr.exe。
步骤2:输入您要生成证书的网站域名,并选择您的IIS网站所托管的站点ID。确认后,GetCertMgr 工具会自动下载安装 Certbot,Certbot 是一个自动化证书工具。
步骤3:运行Certbot工具,输入验证所需信息,例如您的电子邮件地址。然后,Certbot将自动为您生成并安装证书,并将您的IIS网站绑定到证书上。
现在您的网站是用SSL加密的,但还没有启用HTTP/2,因此无法实现更快的网站速度。
2. 开启HTTP/2
步骤1:在IIS管理器中打开您的网站。
步骤2:在右边的“动作”栏中,选择“绑定”并编辑您的HTTPS绑定。
步骤3:勾选“启用HTTP/2”。
现在您的网站已经启用了HTTP/2,但需要进行一些改进来实现更高的安全性和速度。
3. 配置HTTP响应头
步骤1:在IIS管理器中打开您的网站。
步骤2:在右边的“动作”栏中,选择“配置HTTP响应头”。
步骤3:添加以下响应头:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
再次运行SSL检测,您的网站应该获得A+的评级。
示例
以下是我配置HTTPS HTTP/2的过程中遇到的问题以及解决方案的两个示例。
示例1:GetCertMgr无法访问 Let's Encrypt API
解决:由于中国大陆网络环境的特殊性,GetCertMgr工具有时可能无法连接Let's Encrypt API。此时,您可以通过使用acme.sh手动获得证书。
示例2:证书续期失败
解决方案:Let's Encrypt证书的有效期为90天,您需要在证书过期之前至少每90天进行一次续订。在我的情况下,证书续期失败,是因为我的服务器没有正确配置DNS。您可以检查您的DNS是否正确配置,或者使用DNS验证的证书颁发机构来获取证书。
希望这个攻略能够帮助到您,在Windows Server 2016 IIS 10上设置HTTPS HTTP/2并跑分到 A+。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Windows Server 2016 IIS10 设置HTTPS HTTP/2 并跑分到 A+ - Python技术站