1 编写目的
本文档旨在通过对反向代理服务器(WebSEAL)、WEB服务器(IHS)和应用程序服务器(WAS)的配置,实现IBM Portal访问的SSL加密。
2 配置过程
2.1.1 前提条件
本文默认客户现场已经安装了WebSEAL、IHS、WAS等应用,并且各软件相互之间配置运行正常。
老规矩,请备份以下内容,然后再操作:
① IHS配置文件httpd.conf
② WebSEAL配置文件webseald-[实例名].conf
③ wps.ear程序
④ 命令行输出原来的联结点信息,并复制到备份文件中保存。(此处指pdadmin上下文命令)
2.1.2 总体配置过程说明
本文档中描述的各种软件安装路径、名称等均为本地测试环境上的情况,在客户现场配置时,请根据实际情况进行调整。本文档假设:
/opt/IBM/HTTPServer 为IHS的软件根目录
/opt/pdweb 为WebSEAL的软件根目录
/opt/IBM/WebSphere 为WAS的软件根目录
/usr/local/ibm/gsk7 为Gskit-ikeyman的软件根目录
/opt/ibm/java2-i386-50 为WebSEAL所在机器jdk的根目录
为了表述清晰,本次配置的总体过程分为三段进行:
第一段:实现IHS和WAS之间的SSL双向通信。
第二段:实现WebSEAL与IHS之间的SSL通信。
第三段:实现原有HTTP访问的跳转(略)。
2.1.3 实现IHS与WAS之间的SSL双向通信
2.1.3.1 为IHS生成秘钥库
在命令行中,进入IHS插件命令执行目录cd /opt/IBM/HTTPServer/Plugins/bin,运行./ikeyman.sh,在弹出的ikeyman工具主界面中,按如下操作:
①.点击菜单中的“秘钥数据库文件(key Database File)”按钮,然后点击“新建(New)”按钮,弹出秘钥数据库的详细配置页面(下图中的“New”对话框)。
②.在“秘钥数据库类型(Key database type)”中,选择“CMS”,在“文件名称(File Name)”中填写要生成的“秘钥数据库”的文件名。在“位置(Location)”中填入要生成的“秘钥数据库”文件的路径,之后,点击“确定(OK)”按钮。
3.点击“确定(OK)”按钮之后,会弹出“密码提示(Password Prompt)”对话框。这个对话框让用户为“秘钥数据库文件”设置打开密码(本机设置为keydbpassword),以及“秘钥数据库文件”的过期时间等,操作如下:
①在“密码(Password)”中输入自己设定的密码,一定要记住,以后打开此秘钥数据库时,需要输入本密码。此处可以看到对于自己设置的密码强度的提示,比如,本例设置了pa55W0rd@163.com,强度为最高。
②对于“设置到期时间(Set expiration time)”,不勾选,或者勾选之后,设置足够长的时间。本例为不设置。
③对于“将密码存储到文件(Stash the password to a file)”,必须勾选。
④点击“确定(OK)”按钮。
⑤秘钥数据库文件生成之后,在ikeyman工具的“秘钥数据库内容(key database content)”的下拉框中,选中“签署人证书(Signer certificates)”,会看到其中有很多自动生成的证书,全选中ctrl+A,然后点击右侧的“删除(delete)”按钮,删除所有。
2.1.3.2 在IHS秘钥库中生成IHS的自签证书
在ikeyman工具的“秘钥数据库内容(key database content)”的下拉框中选中个人证书,然后点击右侧的“新建自签署(New self-signed)”
紧接着,系统弹出新建自签署证书界面,填写自签证书信息,如下图:
2.1.3.3 抽取IHS的自签证书
选中刚才生成的自签证书IHScert,点击右侧的“抽取证书(Extract certificate)”按钮,然后在弹出的对话框中指定抽取出来的文件名、文件存放位置等信息,如图:
点击“确定(OK)”按钮之后,此IHS证书即被抽取到指定位置了。此时可关闭ikeyman工具。
2.1.3.4 IHS相关配置修改
2.1.3.4.1 修改IHS配置文件
打开/opt/IBM/HTTPServer/conf路径下的IHS配置文件httpd.conf,在文件的最后,增加以下内容:
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
<IfModule mod_ibm_ssl.c>
Listen 443
<VirtualHost *:443>
SSLEnable
SSLClientAuth none
KeyFile "/opt/IBM/HTTPServer/Plugins/key/ihskey.kdb"
</VirtualHost>
</IfModule>
SSLDisable
注意:此段内容中的KeyFile代表IHS秘钥数据库的位置。
2.1.3.4.2 在WAS的web服务器中设置秘钥数据库相关属性
进入WAS控制台à服务器àweb服务器àwebserver1à插件属性à定制属性,点击“新建”按钮,新建两个属性:
名:KeyringLocation 值:/opt/IBM/HTTPServer/Plugins/key/ihskey.kdb
名:StashfileLocation值:/opt/IBM/HTTPServer/Plugins/key/ihskey.sth
分别对应IHS中的秘钥数据库文件位置和保存秘钥数据库文件密码的sth文件的位置。
2.1.3.5 抽取WAS的服务器证书
在WAS控制台-->安全性-->SSL证书和秘钥管理-->秘钥库和证书,点击“NodeDefaultKeyStore”,进入“NodeDefaultKeyStore”配置页面后,点击“个人证书”,在下图的画面中,勾选default。
点击“抽取”按钮,弹出抽取WAS证书界面:
这里注意,测试环境的IHS和WAS安装在同一台机器上,所以,证书直接抽取到IHS对应的位置/opt/IBM/HTTPServer/Plugins/fromWAS/下。如果IHS与WAS不在同一机器上,这里抽取之后,请复制default.arm文件到IHS的所在机器。
2.1.3.6 将WAS的证书导入IHS秘钥数据库
在/opt/IBM/HTTPServer/Plugins/bin目录中运行ikeyman命令,在菜单栏点击“秘钥数据库文件(key database file)”,然后点击“打开(open)”,首先选中类型为CMS,然后浏览之前创建的秘钥数据库文件
此时,会弹出窗口,提示输入秘钥数据库文件的访问密码,输入之前设置的pa55W0rd@163.com,确定。
在“秘钥数据库内容(key database content)”中,选择“签署人证书(Signer certificates)”,点击右侧的“添加(Add)”按钮,在弹出的窗口中选择从WAS导出来的证书default.arm文件。输入标识符,本例:“keyFromWAS”。
重新生成插件、传播插件,然后重启插件。
2.1.3.7 启动IBM Portal的SSL配置
在部署IBM Portal的DM中导出wps.ear(具体的导出、展开、修改、折叠、更新的方法,可以参考《广西中烟门户主题部署说明文档V0.1.docx》),打开wps.war/WEB-INF/Web.xml中的内容,在此文件中找到这一段:
<user-data-constraint id="UserDataConstraint_4">
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
如果<transport-guarantee>节点的值不是CONFIDENTIAL,请将其修改为CONFIDENTIAL。
然后在DM中更新wps.ear。
重启IHS和Portal_Server。
尝试通过IHS访问https://主机名/wps/portal
2.1.4 实现WebSEAL与IHS之间的SSL通信
2.1.4.1 将IHS证书添加到WebSEAL秘钥库
在WebSEAL目录中创建如下文件夹:
/opt/pdweb/www-default/certs/fromIHS,用来保存从IHS机器上拷贝过来的IHS的证书。
和WebSEAL同时安装的还有Gskit-ikeyman工具,我们利用此工具来把IHS的证书导入WebSEAL,找到Gskit-ikeyman工具位置,本例中为:
/usr/local/ibm/gsk7/bin
首先设置java环境变量:export PATH=/opt/ibm/java2-i386-50/jre/bin:$PATH
然后执行./gsk7ikm命令,打开WebSEAL的秘钥数据库文件(如果没有,按照在IHS中创建秘钥库的方法操作):/opt/pdweb/www-default/certs/pdsrv.kdb,导入从IHS中导出的证书文件。
2.1.4.2 将WebSEAL证书添加到IHS的秘钥库
首先,如果WebSEAL还没有自签证书,请为WebSEAL生成自签证书,在WebSEAL的证书库à个人证书中新建标号(key label)为WebSEAL Defualt Key的WebSEAL自签证书。
然后,抽取出此证书,保存在/opt/pdweb/www-default/certs/fromWebSEAL位置。并把此证书导入到IHS的的秘钥库中。
2.1.4.3 修改WebSEAL配置文件
在WebSEAL的安装目录/opt/pdweb/etc中找到WebSEAL的配置文件,本例子中为webseald-default.conf,修改以下内容以支持SSL访问:
webseal-cert-keyfile = /opt/pdweb/www-default/certs/pdsrv.kdb
webseal-cert-keyfile-stash = /opt/pdweb/www-default/certs/pdsrv.sth
webseal-cert-keyfile-label = WebSEAL Default Key
其中:
webseal-cert-keyfile 的值为WebSEAL秘钥数据库文件位置
webseal-cert-keyfile-stash 的值为保存秘钥库文件密码的文件
webseal-cert-keyfile-label 的值为WebSEAL秘钥文件标号
2.1.4.4 更新门户的联结点
对于访问Portal的联结点,我们还是用原有的联结点,只是强制更新他的网络访问协议,从http改成SSL,在WebSEAL所在机器命令行,执行以下命令:
pdadmin
login –a sec_master
然后输入密码,进入pdadmin上下文环境,然后执行更新联结点的命令:
server task default-webseald-主机名 create -t ssl -c iv_user_l -r -f -h gbcent.com -p 443 -K "WebSEAL Default Key" /gbc
此命令要求在一行中执行,不要换行,参数中:
default-webseald-主机名表示WebSEAL实例名称
gbcent.com表示IBM Portal Server所在的主机名
"WebSEAL Default Key"表示之前在WebSEAL中生成的证书标号,注意双引号。
/gbc表示原来访问门户网站的联结点名称(真实环境需要替换)。
命令执行后,原有联结点即更新为采用SSL协议的新联结点,名称不变。
2.1.4.5 修改IHS配置文件
将httpd.conf文件中SSLClientAuth none修改为SSLClientAuth required。
2.1.5 将原有的HTTP访问跳转到HTTPS访问
(略)
2.1.6 如何确定配置成功
2.1.6.1 简单测试
访问WAS自带的snoop应用,结果如图:
在iv_server_name中看到webseal实例名,在WSSN中看到后端主机名
2.1.6.2 门户测试