随着 Internet 上的电子商务的发展,安全网络通信的需求也在日益增加。另外,私有网络之上的企业内部通信经常会包含需要加以保护的机密信息。本文将介绍如何为 iSeries 和 pSeries 服务器上的 Linux 系统的 IBM HTTP Server 配置安全套接字层(SSL),从而建立安全的连接。
安全套接字层(SSL)简介
安全套接字层是用于服务器之上的一个加密系统,它可以确保在客户机与服务器之间传输的数据仍然是安全与隐密的。要使服务器和客户机使用 SSL 进行安全的通信,服务器必须有两样东西:
SSL 使用安全握手来初始化客户机与服务器之间的安全连接。在握手期间,客户机和服务器对它们将要为此会话使用的密钥及加密方法达成一致。客户机使用服务器证书验证服务器。握手之后,SSL 被用来加密和解密 HTTPS(组合 SSL 和 HTTP 的一个独特协议)请求和服务器响应中的所有信息,包括:
在本文中,我们将使用一个自签证书,可以用它来进行测试。不过,在任何实际使用情况中,您都应该有一个由受信任的认证中心(Trusted Certificate Authority)颁发的证书。
开始之前
为了在 IBM HTTP 服务器上配置 SSL,您需要安装 HTTP 服务器。运行 IBM WebSphere Application Server V5 的安装程序,选择安装 HTTP 服务器(安装或者不安装应用服务器(Application Server)都可以),可以完成这项任务。在 “ Installing WebSphere Application Server V5.0 for Linux on iSeries and pSeries”一文中,您可以深入了解 WebSphere Application Server 的安装。
另外,为了配置 IBM HTTP 服务器,我们将使用 IBM HTTP 管理服务器(Administration Server)浏览器界面。这个界面使用了 Microsoft Internet Explorer 组件。所以,您必须在 Windows 系统上使用 Internet Explorer 访问 HTTP 管理服务器。这个 Windows 系统必须可以通过网络访问运行管理服务器的 POWER 服务器上的 Linux。
配置安全连接
为了拥有一个安全的网络连接,您必须完成下面四个步骤:
IBM 密钥管理工具(iKeyman)是一个用来管理数字证书的图形用户界面工具。该工具可以用来创建新的密钥数据库或者测试数字证书,向数据库添加认证中心(CA)的根,将证书从一个数据库复制到另一个数据库,以及通过 CA 请求和接收数字证书。
第 1 部分:创建一个新的密钥数据库
密钥数据库是一个文件,服务器用它来存储一个或多个密钥对和证书。您可以为所有密钥对和证书使用一个密钥数据库,或者创建多个数据库。您可以创建一个新的密钥数据库,或者可以使用一个已有的密钥数据库。完成下面的步骤,创建一个新的密钥数据库:
|
|
Password Strength 准则:通过显示的钥匙符号的数目(最多 5 把钥匙),您可以看到密码的强度的变化。当您输入了一个由包含特殊字符的大小写混合的文字数字式字符构成的复杂密码后,您可以看到会显示出 5 把钥匙,比如下面的例子:MickeyMouse43@#0243。
第 2 部分:创建一个自签证书
自签数字证书是您颁发给自己的临时数字证书,所以您自己就是 CA。
注意:不要使用自签数字证书发布一个产品化应用程序。因为没有浏览器或客户机可以使用一个自签证书来识别出您的服务器并与之通信。
使用 IKEYMAN 创建一个自签署的服务器证书,以便启用客户机与服务器之间的 SSL 会话。
在 Create New Self-Signed Certificate 窗口中,您需要知道用于这两个域的以下信息(其他域不言自明):
Key label —— 输入一个名称,以便在数据库中识别密钥和证书(例如:power)。在设置 HTTP 服务器启用 SSL 时,需要记得这个名称。
Common name —— 输入 Web 服务器的完全主机名作为通用名称(例如:www.myserver.com)。
Organization —— 您需要在这个字段中输入一些信息(例如:公司或者组织的名称)。
现在,您就已经为使用 IBM HTTP 管理服务器设置 SSL 做好准备了。
第 3 部分:使用 IBM 管理服务器设置安全套接字层
在配置 SSL 之前,需要为 IBM HTTP 服务器创建一个管理员用户。完成这项任务的最好方法是,创建一个管理员组,将用户添加到该组中,然后将权限赋与这个组,而不是赋与用户。
|
|
|
|
|
输入 User httpadm 和 Group httpadm。
|
|
图 7. Getting Started 面板
第 1 步:设置安全模块
在左边的导航窗格中,单击 Basic Settings 前的箭头,展开树,并在树中选择 Module Sequence。Module Sequence 面板将会打开,并显示出 Scope: <GLOBAL>。这是默认的范围。单击 Add,然后单击 Select a module to add 单选按钮。展开列表,转到列表的底部,在列表中选择 ibm_ssl。模块被放置在右边的域中。单击 Apply,将模块添加到活动服务器模块列表。单击 Close,然后单击 Submit。
第 2 步:为安全服务器设置安全主机 IP 和另外的端口
在树中的 Basic Settings 下,单击 Advanced Properties。Module Sequence 面板将会打开,并显示出 Scope: <GLOBAL>。向下滚动,并单击 Specify additional ports and IP addresses 字段中的 Add。保留 IP 地址域为空(可选的),但在 Port 字段中输入 443。单击 Apply 添加端口。然后单击 Close。向下滚动,并单击 Submit。
图 9. Advanced Properties
第 3 步:为安全的服务器设置虚拟主机结构
在左边的导航窗格中,单击 Configuration Structure 前面的箭头。单击 Create Scope,打开 Create Scope 窗格。展开 Select a valid scope to insert within the scope selected in the right panel 列表,并选择 VirtualHost。在 Enter the virtual host IP address or fully qualified domain name 字段中,输入 Web 服务器的完全主机名。并在 Virtual host port 字段中输入 443。保留 Server name 字段为空。该字段只是用来重定向 URL。 HTTP 服务器通过其本身的 IP 地址来确定服务器(主机)名。保留 Alternate names for host 字段为空。然后单击 Submit。
第 4 步:为安全的服务器设置虚拟主机文档的根
在树中的 Basic Settings 下,单击 Core Settings。单击 Scope;选择您上面创建的虚拟主机。输入服务器名称,比如完全的域名。输入文档根目录,比如 /opt/IBMHTTPServer/htdocs/en_US。单击 Submit。
第 5 步:为安全的服务器设置密钥文件和 SSL 超时值
在左边的导航窗格中,单击 Security 前面的箭头,展开树。单击树中的 Server Security,打开 Server Security 窗口。在 Scope 按钮后显示出您为 SSL 创建的虚拟主机名。在 Server Security 窗口中,选择 Enable SSL: Yes 单选按钮。在 Keyfile file name 字段中,输入路径和密钥文件的文件名。在我们的例子中是 /opt/IBMHttpServer/keys/key.jks。输入一个 SSL 版本 2 会话 ID 超时值(100 秒)和一个 SSL 版本 3 会话 ID 超时的时间值(1000 秒)。单击 Submit。
第 6 步:启用 SSL,并选择客户机认证的模式
在树中 Security 下,单击 Host Authorization,打开 Host Authorization 窗口。注意,在 Scope 按钮的后面,显示出了您为 SSL 创建的虚拟主机名。在 Host Authorization 窗口中,选择 Enable SSL: Yes 单选按钮,为虚拟安全主机启用 SSL,然后选择 Mode of client authorization to use: None 单选按钮。在 Server certificate to be used for this virtual host 字段中,输入先前创建的服务器证书名。在我们的例子中,该名称为 power。在 Cipher specifications that can be used in a secure transaction 窗口中,单击 Add。依次单击规范 39、规范 3A、规范 62 和 规范 64,然后添加它们,接着单击 Apply。最后单击 Submit。
第 4 部分:测试服务器安装和配置
配置了安全套接字层之后,使用三个快速测试来测试服务器的安装。
测试 http 连接
在 web 浏览器中输入 URL:http://your_host/。
您将看到 web 服务器的主页。
测试 https(SSL)连接
在 Web 浏览器中输入 URL:https://your_host/。
特别注意的是:不会为 SSL 而启用 localhost(127.0.0.1)界面。您必须使用外部主机名来访问 SSL。
查看配置文件并确认设置
找到配置文件(/opt/IBMHttpServer/conf/httpd.conf),并用一个文本编辑器来查看它。在 httpd.conf 文件的底部,应该会有类似如下的内容:
|