随着 Internet 上的电子商务的发展,安全网络通信的需求也在日益增加。另外,私有网络之上的企业内部通信经常会包含需要加以保护的机密信息。本文将介绍如何为 iSeries 和 pSeries 服务器上的 Linux 系统的 IBM HTTP Server 配置安全套接字层(SSL),从而建立安全的连接。
安全套接字层(SSL)简介
安全套接字层是用于服务器之上的一个加密系统,它可以确保在客户机与服务器之间传输的数据仍然是安全与隐密的。要使服务器和客户机使用 SSL 进行安全的通信,服务器必须有两样东西:
- 密钥对(Key pair) —— 一个密钥对包括一个公钥和一个私钥。这两个密钥用来对消息进行加密和解密,以确保在因特网上传输时的隐密性和机密性。
- 证书(Certificate) —— 证书用来进行身份验证或者身份确认。证书可以是 自签(self-signed)证书,也可以是 颁发(issued)证书。自签证书是为自己私有的 Web 网络创建的证书。颁发证书是认证中心(certificate authority,CA)或者证书签署者提供(颁发)给您的证书。
SSL 使用安全握手来初始化客户机与服务器之间的安全连接。在握手期间,客户机和服务器对它们将要为此会话使用的密钥及加密方法达成一致。客户机使用服务器证书验证服务器。握手之后,SSL 被用来加密和解密 HTTPS(组合 SSL 和 HTTP 的一个独特协议)请求和服务器响应中的所有信息,包括:
- 客户机正在请求的 URL。
- 提交的表单的内容。
- 访问授权信息(比如用户名和密码)。
- 所有在客户机与服务器之间发送的数据。
在本文中,我们将使用一个自签证书,可以用它来进行测试。不过,在任何实际使用情况中,您都应该有一个由受信任的认证中心(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 密钥管理工具(Key Management Utility,iKeyman)创建一个自签署的服务器证书。
- 使用 IBM 管理服务器设置 SSL。
- 测试服务器的安装和配置。
IBM 密钥管理工具(iKeyman)是一个用来管理数字证书的图形用户界面工具。该工具可以用来创建新的密钥数据库或者测试数字证书,向数据库添加认证中心(CA)的根,将证书从一个数据库复制到另一个数据库,以及通过 CA 请求和接收数字证书。
第 1 部分:创建一个新的密钥数据库
密钥数据库是一个文件,服务器用它来存储一个或多个密钥对和证书。您可以为所有密钥对和证书使用一个密钥数据库,或者创建多个数据库。您可以创建一个新的密钥数据库,或者可以使用一个已有的密钥数据库。完成下面的步骤,创建一个新的密钥数据库:
- 首先,创建一个存储密钥数据库的目录(例如:/opt/IBMHttpServer/keys/)。这是个好主意,因为在您实际创建那些文件之前,这个文件夹/目录必须已经存在。
- 在运行密钥管理工具之前,设置正确的 Java 路径。在我们的文章中,我们将使用与 WebSphere Application Server 一起安装的 Java 运行环境,使用下面的命令:
# export JAVA_HOME=/opt/WebSphere/AppServer/java
- 要启动密钥管理程序,需要先打开终端窗口,切换到 /opt/IBMHttpServer/bin 目录,然后执行下面的命令:
# ./ikeyman
- 应该会出现一个 IBM 密钥管理屏幕。选择 Key Database File > New… 来创建一个新的数据库。
- 在 New 窗口中,输入密钥数据库名称(例如:key.jks)和上面创建的密钥文件夹的路径。
- 打开 Password Prompt 窗口,创建一个密码,比如 passw0rd(要求至少有 6 个字符)。
Password Strength 准则:通过显示的钥匙符号的数目(最多 5 把钥匙),您可以看到密码的强度的变化。当您输入了一个由包含特殊字符的大小写混合的文字数字式字符构成的复杂密码后,您可以看到会显示出 5 把钥匙,比如下面的例子:MickeyMouse43@#0243。
- 关闭 IBM 密钥管理窗口(Key Database File > Exit).
第 2 部分:创建一个自签证书
自签数字证书是您颁发给自己的临时数字证书,所以您自己就是 CA。
注意:不要使用自签数字证书发布一个产品化应用程序。因为没有浏览器或客户机可以使用一个自签证书来识别出您的服务器并与之通信。
使用 IKEYMAN 创建一个自签署的服务器证书,以便启用客户机与服务器之间的 SSL 会话。
- 在命令行中运行 ikeyman,启动密钥管理。
- 通过 Key Database File > Open 打开密钥数据库。在 Open 对话框中,找到密钥数据库名称,例如 /opt/IBMHttpServer/keys/key.jks,然后单击 Open。
- 当 Password Prompt 窗口打开后,输入您在上一节中创建的密码。
- 在 Key Database 内容帧的下拉列表中选择 Personal Certificates,然后单击 New Self-Signed… 按钮。
-
在 Create New Self-Signed Certificate 窗口中,您需要知道用于这两个域的以下信息(其他域不言自明):
Key label —— 输入一个名称,以便在数据库中识别密钥和证书(例如:power)。在设置 HTTP 服务器启用 SSL 时,需要记得这个名称。
Common name —— 输入 Web 服务器的完全主机名作为通用名称(例如:www.myserver.com)。
Organization —— 您需要在这个字段中输入一些信息(例如:公司或者组织的名称)。
- 完成这项操作后,单击 OK。
- 可以确认新的 Personal Certificate 是否已经成功创建,其名称显示在 Personal Certificate 面板中(比如 power)。
- 关闭 IBM 密钥管理窗口(Key Database File > Exit)。
现在,您就已经为使用 IBM HTTP 管理服务器设置 SSL 做好准备了。
第 3 部分:使用 IBM 管理服务器设置安全套接字层
在配置 SSL 之前,需要为 IBM HTTP 服务器创建一个管理员用户。完成这项任务的最好方法是,创建一个管理员组,将用户添加到该组中,然后将权限赋与这个组,而不是赋与用户。
- 执行下面的命令来创建一个管理员组:
# groupadd httpadm
- 执行下面的命令,创建一个用户,并使其成为上面创建的组的成员:
# useradd -g httpadm httpadm
- 默认情况下,root 用户有对 httpd.conf 文件的读写权限,httpadm 组对 httpd.conf 文件只有读权限。因此,需要执行下面的命令将拥有该文件的组改为 httpadm:
# chgrp httpadm httpd.conf
- 我们需要将对 httpd.conf 文件(在 /opt/IBMHttpServer/conf 目录下)的写权限赋与 httpadm 组。请执行下面的命令:
# chmod g+r,g+w httpd.conf
- 我们还需要修改 admin.conf 文件中的 User 和 Group 条目。注释出现有的条目,并添加 User httpadm 和 Group httpadm 的条目。可以使用 vi 编辑器来编辑 admin.conf 文件。
# vi admin.conf
输入 User httpadm 和 Group httpadm。
- 使用下面的命令重新启动 IBM HTTP 服务器(Apache Control)和 IBM HTTP 管理服务器(Admin Control):
# /opt/IBMHttpServer/bin/apachectl stop # /opt/IBMHttpServer/bin/adminctl stop # /opt/IBMHttpServer/bin/apachectl start # /opt/IBMHttpServer/bin/adminctl start
- 在网络上任意一个 Windows 系统中打开一个 Internet Explorer 窗口,并输入地址 http://<fully_qualified_domain_name>:8008/admin/,以打开 IBM HTTP 管理控制台。在对用户标识和密码的提示中,单击 Cancel。
- 核对创建用户标识的命令。
- 在 POWER eServer 系统中,为 root 用户创建一个 HTTP 管理控制密码(比如 passw0rd)。
# cd /opt/IBMHttpServer/bin # ./htpasswd -cm /opt/IBMHttpServer/conf/admin.passwd root New password: passw0rd Re-type new password: passw0rd
- 在网络上任意一个 Windows 系统中打开一个 Internet Explorer 窗口,并输入地址 http://<fully_qualified_domain_name//>:8008/admin/,以打开 IBM HTTP 管理控制台。
- 使用用户标识 root 和密码 pass0rd 登录。这将打开 Getting Started 面板(用于 IBM HTTP 服务器)。等待左边的导航面板出现(标题为 IBM Administration Server),然后遵循下面的第 1 步到第 6 步来配置 SSL。
图 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。
- 单击右边窗格的右上角问号 (?) 旁边的黑色圆形图标,重新启动 HTTP 服务器,或者使用 shell 命令来重新启动 HTTP 服务器。
第 4 部分:测试服务器安装和配置
配置了安全套接字层之后,使用三个快速测试来测试服务器的安装。
- http 连接测试。
- https(SSL)连接测试。
- 查看配置文件。
测试 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 文件的底部,应该会有类似如下的内容:
|
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073