http升级https:IIS配置HTTPS

通过XCA程序生成并导出了证书文件,现在应该在服务器上安装证书了,此文以IIS10.0为Web服务器,使用Windows Server 2016操作系统。

1.将证书拷贝到服务器上的目标目录,然后调出运行程序,输入mmc回车,打开MMC管理程序。

 

2.点击菜单栏“文件 -> 添加/删除管理单元”,弹出其管理窗体,在左侧列表种选中“证书”项,点击“添加”按钮,之后按照流程操作。

 

 

 

 

3.证书管理单元添加完毕后,MMC主窗体左侧树形菜单出现数据,此时选中“个人 -> 证书”项,右键 -> 所有任务 -> 导入,之后按照流程操作。

 

 

 

 

 

 

4.完成上述操作,表示证书已经安装在了服务器上,接下来就是配置使用了。



a.IIS上使用证书配置https网站,打开IIS,选择目标网站,右键选择“绑定”,这里假设目标网站已经存在。

 

b.在弹出窗体上按照要求填写各个选项,之后将配置信息保存即可。

 

c.此时,就可以通过浏览器以https://xxxxx的方式安全的访问网站了。


d.扩展知识1,由于浏览器默认不允许https安全站点访问没有加密的不安全站点http,所以站点从http升级到https时,可能会出现后台服务不可访问的错误异常。如果遇到这类问题,可以尝试使用以下方法解决:
d1.强制使用https:即通过在网页中加入代码的形式,强制使用https。即在网页中加入代码<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">或者在服务器响应头中加入Content-Security-Policy: upgrade-insecure-requests项。
d2.使用相对协议,在资源头里不加入http或者https,只有//,举例:<img src="http://xxxx.xxxx.com/abc.png">改为<img src="//xxxx.xxxx.com/abc.png">。
d3.比较上述两个方式,显然第二种方式更平滑。

e.扩展知识2,为了使用在书签中收藏http链接的用户能够使用安全的服务,我们需要将http请求转到https请求。此时需要URL Rewrite工具帮忙了,如果你的站点和服务是前后端分离的两套程序,那么你对它一定不陌生。在站点的根目录下打开web.config配置文件,如果没有则创建一个,在节点<system.webServer>添加如下内容:

<rewrite>

    <rules>

       <rule name="HTTP2HTTPS" stopProcessing="true">

           <match url="(.*)"/>

              <conditions>

                  <add input="{HTTPS}" pattern="off" ignoreCase="true" />

              </conditions>

              <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />

        </rule>

    </rules>

</rewrite>  

f.扩展知识3,从http升级为https后,websocket不能用了啊!问题说明:
f1.如果网站升级为https,那么websocket的通信协议必须是wss://不能是原来的ws://。
f2.使用wss协议的连接,必须只能使用域名,而非IP+端口号。
f3.建议websocket单独管理。

特别声明:因为敝人较懒惰,文中图片来自这位仁兄的文章https://www.cnblogs.com/hexu6788/p/10082074.html

原文地址:https://www.cnblogs.com/Jkinbor/p/15104197.html