第10课:IIS

第10课:IIS 如何配置 HTTPS

对于 Java 从业人员来说,大多数人也许都比较熟悉如何使用和配置 Tomcat、JBoss 等 Web 服务器,但对于 IIS 的使用和配置也许会感到陌生,为了照顾部分 .NET 平台的开发和使用者,同时也为了扩展 Java 从业人员的技术视野,笔者在这篇文章中将会和大家探讨如何在 IIS 里面如何配置 HTTPS。本文将以 Window 2012 R2 服务器为例子,和大家分享如何使用自签名的证书配置 HTTPS 以及如何使用第三方 CA 签发的证书配置 HTTPS。

环境准备

假设大家已经安装好了 IIS 并创建了一个默认的 Web 应用,笔者就在机器名为 iis-web-01 的服务器上安装了一个基于 HTTP 的默认的 IIS 的 Web 应用,如下图所示意。

enter image description here

配置自签名的 HTTPS

下面来看如何为 IIS 配置自签名的 HTTPS 应用。首先,在开始菜单栏里面打开服务器管理(Server Manager),点击上面的工具(Tools)菜单,在工具菜单中选择 IIS 管理器(Internet Information Services(IIS)Manager)。

enter image description here

其将会打开一个如下图的界面。

enter image description here

选择网站左边的根节点,并在中间部分找到服务器证书(Server Certificates)的选项,并双击打开,将会弹出下面的界面。

enter image description here

点击上图中右边的创建自签名证书(Create Self-Signed Certificate)选项,将会弹出下面的页面,在友好名字(Friendly Name)一项中输入服务器的名称(笔者的环境为:iis-web-01)并选择存储证书的位置为 Web Hosting。

enter image description here

当单击 OK 按钮后,创建的服务器证书就自动保存在服务器证书(Server Certificates)列表里面了,如下图。

enter image description here

点击你要配置的网站,比如,笔者要把默认的网站配置成 HTTPS,则选择左边的默认网站(Default Web Site),并点击最右边的绑定(Bindings…)选项。

enter image description here

其会弹出一个对话框,单击对话框右边的“添加(Add)”按钮。

enter image description here

在弹出的窗体中选择 Type 为 HTTPS,端口(Port)为 443,在最下面的 SSL 证书(SSL Certificate)中选择上面已经创建好的自签名的名字为 iis-web-01 的证书,最后单击 OK 按钮。

enter image description here

打开浏览器,并在其中输入 https://iis-web-01/,其界面如下,IIS 中的自签名的 HTTPS 配置成功。

enter image description here

配置私有 CA 签名证书请求的 HTTPS

上面演示的是如何在 IIS 配置自签名的 HTTPS,那么接下来我们会涉及到先使用 IIS 自带的功能生成一个证书请求,然后利用在《第04课:使用 XCA 管理和生成 SSL 证书》一文中生成的 CA 去签名 IIS 导出的 SSL 证书请求。

1. 生成证书请求

上面演示的是如何在 IIS 配置自签名的 HTTPS,那么接下来会涉及到先使用 IIS 自带的功能生成一个证书请求,下面看具体的步骤。和上面的章节的步骤类似,打开 IIS 管理器(Internet Information Services(IIS)manager),选择网站左边的根节点,并在中间部分找到服务器证书(Server Certificates)的选项,并双击打开,在弹出的页面中,这次选择点击创建证书请求(Create Certificate Request),如下图所示意。

enter image description here

在弹出下面的一个对话框中,输入证书请求的相关信息,如下:

enter image description here

单击“下一步”按钮后,秘钥服务提供者选择“Microsoft RSA SChannel Cryptographic Provider”并选择秘钥长度为2048位。

enter image description here

继续单击“下一步”按钮,指定 SSL 证书请求导出的文件路径,如下图所示意,笔者导出到 C:\ssldemo\iis-web-01.csr。

enter image description here

单击“完成”按钮后,将会在 C:\ssldemo 目录下看到一个名字为 iis-web-01.csr 的 SSL 证书请求。

2. 使用 XCA 签名证书请求

打开在《第04课:使用 XCA 管理和生成 SSL 证书》已经生成的 XCA 的数据库,并把上面的 iis-web-01.csr 导入到 XCA 数据了里面,如下图所示意。

enter image description here

enter image description here

导入证书请求成功后,选择 iis-web-01 的证书请求,并点击右键,在弹出的菜单中点击签署(Sign)。

enter image description here

在弹出的窗体中,点击源(Source)页面,并注意下面的用红色标出的两处。

  • 使用 51Talk Docter Root CA 签署证书请求。
  • 使用Https_Server的模板。

enter image description here

最后单击“确认”按钮,我们发现 IIS 的证书请求被成功签名。

enter image description here

3. 导出 CA 证书和被签署好的服务器证书

因为 iis-web-01 的证书请求已经被签署好了,现在需要从 XCA 中导出,并导入到 IIS 中。在 XCA 导出的步骤如下,在 XCA 的证书(Certificate)页面,选择已经被签署好的 iis-web-01 的证书,并单击“导出(Export)”按钮。

enter image description here

在弹出的页面,一定要选择导出的格式为 DER(*.cer),其就是被私有 CA 签署的 SSL 证书,并输入要导出的路径名称,单击 OK 按钮,服务器证书导出完毕。

enter image description here

接下来要导出 51Talk Docter Root CA 的证书,首先选择根证书(51Talk Docter Root CA),然后导出步骤和格式和服务器证书一样。

enter image description here

enter image description here

把导出的两个证书 iis-web-01.cer,51TalkDocter_Root_CA.cer,拷贝到 IIS 服务器上,比如 C:\ssldemo 目录下。

enter image description here

打开 IIS 管理器(Internet Information Services(IIS)manager),选择网站左边的根节点,并在中间部分找到服务器证书(Server Certificates)的选项,并双击打开,在弹出的页面中,这次选择点击“完成证书请求”(Create Certificate Request),如下图所示意。

enter image description here

在弹出的上面的窗体中,在第一个选项(File Name containing the certification authority's response)的文件选中框中选择我们刚刚被私有 CA 签署过的证书 c:\ssldemo\iis-web-01.cer,给其取一个友好的别名(Friendly Name),比如,在我的例子我取名为“iis-web-01-signBy-CA”,存储位置选择“Personal”,然单击 OK 按钮,iis-web-01.cer 被成功导入到 IIS 服务器证书(Server Certificates)列表里面。

enter image description here

服务器的 SSL 证书已经被成功导出了,那么51TalkDocter_Root_CA.cer根证书该如何处理呢?因为51TalkDocter_Root_CA.cer是一个私有的 CA 根证书,不是操作系统默认自带的 CA 根证书,所以我们需要把其安装到 Windows 操作系统的受信任的根证书列表中。

具体操作步骤如下:

双击 c:\ssldemo\51TalkDocter_Root_CA.cer 证书,其会弹出一个窗体显示证书。

enter image description here

注意其上面有以一个红色叉号,表示当前这个证书是不受操作系统信任的一个 SSL 证书。

单击下面的安装证书(Install Certificate …)按钮,将会弹出证书导入向导(Certificate Import Wizard)窗体,如下图,并单击“下一步”按钮。

enter image description here

在下面的窗体中,选择“Place all certificates in the following store” 复选框,并单击 最右侧的“Browser..”按钮,其将会弹出“Select Certificate Store”的窗体,在弹出的“Select Certificate Store”的窗体中选择“Trust Root Certification Authorities”,如下图所示。

enter image description here

单击“下一步(Next)”按钮,最后单击“完成(Finish)”按钮。

enter image description here

在弹出的 Security Waring 窗体中单击 Yes 按钮,51TalkDocter_Root_CA.cer 这个私钥的 CA 根证书将会成功导入到操作系统受信任的根证书列表中。

enter image description here

再次双击打开 c:\ssldemo\51TalkDocter_Root_CA.cer 证书,会发现以前的红色叉号已经消失。

enter image description here

目前为止,服务的证书和私有 CA 的根证书都导入完毕。

注意,如果私有 CA 证书由多级,比如有根私有 CA 证书,还有中级 CA 证书,需要安装类似的步骤都导入到操作系统的可信任的根证书和可信任的中级证书列表里面。

4. 在 IIS 中选择被签署过的 SSL 服务器证书

这个步骤比较简单,和上面的私有签名的步骤类似,单击你要配置的网站,比如,笔者要把默认的网站配置成 HTTPS,则选择左边的默认网站(Default Web Site),并单击最右边的绑定(Bindings…)选项,会弹出下面的类似窗体。

enter image description here

在弹出的对话窗体中,双击类型为 HTTPS 的行,其会弹出一个窗体,在弹出的窗体中,SSL Certificate 下拉框中选择“iis-web-01-signBy-CA” 这个在本文上面《导出 CA 证书和被签署好的服务器证书》一节已经被导入到 IIS 服务器证书列表中的证书名称,最后单击 OK 按钮。

恭喜你,被私有 CA 自签名的 SSL 服务器的证书在 IIS 已经配置成功了。激动人心的时刻到了,用浏览器打开这个网址:https://iis-web-01/,发现这个网站的 SSL 证书已经变成了我们刚刚导入的 SSL 服务器证书。

enter image description here

总结

本文主要给大家分享了如何在 IIS 中配置自签名的 HTTPS 和被私有 CA 签名的 HTTPS。

需要注意的是,如果大家在生成环境,把证书请求发给了世界上知名的第三方的 CA 签署了证书请求后,其被签署的 SSL 服务器证书和签署服务器证书请求的世界上知名的第三方的 CA 证书以及其中间证书的导入步骤和本文《配置私有 CA 签名证书请求的 HTTPS》一节中的步骤类似。千里之行始于足下,知易行难,建议大家按照上面的步骤动手试一下,肯定会有新的收获。最后祝大家学习开心,生活愉快!

上一篇
下一篇
目录