IBM Support

如何建立IBM i上的LDAP服务器与Web Administration tool的SSL连接

Technical Blog Post


Abstract

如何建立IBM i上的LDAP服务器与Web Administration tool的SSL连接

Body

如何建立IBM i上的LDAP服务器与Web Administration tool的SSL连接
       Web Administration tool(以下简称WebAdmin)是提供给用户对IBM i LDAP(Lightweight Directory Access Protocol)目录服务器进行管理的Web控制台。有时,用户出于安全考虑会希望用SSL (Secure socket layer)协议来对WebAdmin和LDAP服务器之间的连接进行加密。然而,由于IBM i系统的特殊性以及LDAP的证书格式与Web应用程序的证书格式的不一致,导致配置这样一个SSL连接并不是件轻松的事。
      实际上,IBM Tivoli Directory Server(ITDS)Administration Guide 对建立LDAP服务器和Web应用程序之间的SSL连接已经有过详细的介绍。用户使用gsk7ikm密钥管理工具来分别创建类型为KDB和JKS的密钥数据库,并在每个密钥数据库中均创建一个自签署的证书。其中,KDB类型的密钥数据库用来存放LDAP服务器的证书,JKS则是Web应用服务器的证书数据库的类型。抽取这两个密钥数据库中的自签名证书,导入给对方。最后,将JSK密钥数据库文件加入Webadmin的客户端信任列表中。这样,只要使用该KDB密钥数据库文件进行验证的LDAP的SSL服务已配置好,一个只需要进行服务器验证的SSL连接就配置成功了。然而,在IBM i中,并不能直接使用上述方法。IBM i 使用Digital Certificate Manager (DCM)来管理保存KDB密钥数据库。那么,如何实现IBM i中密钥数据库从KDB类型到JKS类型的转换呢?IBM i中的LDAP服务器和Webadmin的SSL连接又是如何建立的呢?下面就把详细的步骤介绍给您。
      注:受篇幅所限,我们假设您已经有了SSL相关的基本知识、

步骤1: 创建一个本地的认证授权(Certificate Authority, 即CA),并用它来颁发一个服务器证书给LDAP服务器。
        在DCM中,选择“创建一个认证授权(CA)”,页面右侧会展现出一系列表格。这些表格指导你创建本地CA和完成其他任务(比如颁发认证),并且为SSL使用的数字证书来进行签名认证。CA一旦创建完毕,需要在DCM中将CA和LDAP服务器关联起来,这样服务器才能够被验证。所有详细步骤都已经在IBM i 信息中心介绍了,您可以参考Creating and operating a local CA和Enabling SSL and Transport Layer Security on the Directory Server 。这步完成后,CA将被创建在一个类型为KDB的密钥数据库文件中: /QIBM/USERDATA/ICSS/CERT/SERVER/DEFAULT.KDB。
这时,LDAP已经为SSL连接做好了准备。 您可以用如下方式来验证LDAP的SSL配置。在IBM i Systems Director Navigator for i 中点击IBM Tivoli Directory Server for IBM i 的属性按钮,打开“网络”页面。可以看到“安
全”复选框被自动勾上了。并且SSL连接的缺省方式是“服务器认证”(Server Authentication)

图像 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 步骤2: 从DEFAULT.KDB 文件中抽取出CA。
       在DCM中,单击左侧面板中的“Install CA certificate on your PC”(安装认证授权证书到你的电脑上)。在刷新后的右侧面板中,单击“Install certificate”(安装证书),弹出文件下载对话框。 单击 “Save”(保存) 将 “CA.cer” 文件存储到你的电脑上。
图像
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
步骤3: 为Webadmin创建一个自签名的JKS密钥数据库文件

       创建JSK文件,我们必须使用IBM密钥管理(iKeyman)工具。它是一个可以运行在Windows平台上用来管理数字认证的图形用户界面(GUI)工具。通过IBM密钥管理工具,你能创建密钥数据库文件或者测试数字认证,添加CA到密钥数据库,从一个数据库中拷贝认证到另一个数据库, 从CA申请和接收数字认证,设置默认密钥,以及修改密码等等。在此文的场景中,我们需要用它来创建一个JKS密钥数据库,用于存储步骤2中抽取出来的CA。
a. 在Windows中启动“IBM密钥管理”。 (IBM密钥管理工具被集成在很多应用程序中, 如果您已经安装了IBM i Access,或者IBM HTTP服务器,或者WebSphere应用服务等等,都能从他们的启动菜单里找到“IBM密钥管理”。)

图像
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

b. 选择“密钥数据库文件”。
c. 选择“新建”。若密钥数据库已经存在时,则选择“打开”。
注意: 在“密钥数据库类型”列表中指定“JKS” 。
d. 指定密钥数据库文件的名字和位置,单击“确定”。
e. 设置密钥数据库的密码,单击“确定”.
f. 点击 “创建”-> “新建自签署证书”.
g. 提供以下内容:
. 密钥对的用户分配标签。这个标签指出密钥对和认证,存储在key数据库中。

注意: 确保你没有在DEFAULT.KDB中使用同样的标签。
. 证书版本。
. 密钥大小。
. 符合X.500规范的服务器名。通常就是TCP/IP主机域名全称,比如:
www.ibm.com.
. 机构名(比如你公司的名字)。
. 部门名(可选项)。
. 服务器所在城市(可选项)。
. 服务器所在省会的三个字母缩写(可选项)。
. 服务器所在地邮政编码(可选项)。
. 服务器所在国家的两个字代码。
. 证书的有效期。
h. 单击“确定”.

步骤4: 将CA添加到JKS密钥数据库。

a. 打开“IBM密钥管理”。
b. 选择密钥数据库文件。单击“打开”。
c. 选择JKS密钥数据库的文件名和位置。
注意: 这个密钥数据库文件是你在步骤3创建的。
d. 如果需要,提供密码,单击“确定”。
e. 转到签署人证书。单击“添加”。
f. 选择先前建立的"Base64编码的ASCII数据"文件(CA.cer),单击“确定”。
g. 为该证书设置一个标签名,“确定”。
h. 将该JKS密钥数据库文件传送至您的IBM i系统中。
注意: 确保传送模式为二进制。

这一步结束以后,一个包含CA的JKS密钥数据库文件在IBM i上建立起来。这个CA就是步骤1中用来给LDAP颁发服务器证书的CA。

步骤5: 配置Web控制台的属性将CA添加到WebAdmin的信任列表中。

a. 以管理员的身份登陆WebAdmin。
   1) 确保是在“控制台管理登录”界面。
   2) 在用户标识输入框中, 输入“superadmin”。
   3) 在密码输入框中, 输入密码。
图像

 
 
 
 
 
 
 
 
 
 
 b. 进入管理界面后展开“控制台管理”。 
c. 单击“管理控制台属性”。
d. 单击“SSL密钥数据库”进行设置来帮助控制台能使用SSL和LDAP服务器进行通信。在“可信数据库”栏下方输入步骤4中JKS密钥数据库文件在您的IBM i服务器中的路径和文件名,以及数据库文件的密码。
图像
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    注: Web控制台仅支持文件格式为JKS的密钥数据库文件。
e. 单击“确定”.
f. 重启HTTP服务器使设置生效。

步骤6: 添加一个启动了SSL服务的LDAP服务器到WebAdmin并验证。

a. 登陆进入WebAdmin“控制台管理”界面。
b. 选择“管理控制台服务器”,点击“添加”。
c. 在主机名输入框中,输入步骤1配置的LDAP服务器名。
d. 在端口输入框中,输入LDAP服务器的安全端口号,即缺省为“636”的端口号。
e. 勾选上“启用SSL加密”。

f. 取消“支持的管理守护程序”

图像

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
g. 单击“确定”。
注销离开控制台管理页面, 切换至“目录服务器登陆”页面。选择刚刚添加的LDAP服务器,输入密码。验证是否可以登陆进去。如果登陆成功,就说明WebAdmin与LDAP服务器之间的SSL连接已经配置好了。

     到此为止,本文已经介绍了一个在WebAdmin和LDAP服务器之间建立仅要求服务器认证的SSL连接的方法。如果想建立一个同时要求服务器和客户端认证的SSL连接,总体的过程并没有太大不同。您只需要在JKS密钥数据库文件里再创建一个“个人认证”来做为验证WebAdmin的证书。
     此外,有两点注意事项需要说明一下:
     1. 本文所介绍的方法只适用于WebAdmin服务器和LDAP服务器在同一台IBM i 上的情况。
     2. 不要将JKS文件放在目录“/QIBM/USERDATA/ICSS/CERT/SERVER/”下。因为该目录的权限是受限制的,Web应用程序无法访问。

作者:Iris BJ Li

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

UID

ibm11145488