PAS V6.5默认携带SSL证书,可以用于业务应用https方式访问。用户如需使用特定证书,可以按照如下方式进行操作。
准备JKS证书
PAS V6.5基于JAVA实现,因此SSL证书需要使用JKS格式,SSL证书包括:keystore.jks(私钥证书库),cacerts.jks(信任库)。
使用keytool 生成JKS
注意:keytool 工具是JDK提供的,请确保服务器上已经安装好JDK,并配置环境变量。
如用户自己生成jks证书可以按照如下操作进行。例如生成别名为app的,密钥库口令为testpass的SSL证书:
- 使用
keytool -genkey
命令生成私钥证书库(keystore.jks)。
keytool -genkey -storetype pkcs12 -keyalg RSA -keystore keystore.jks \
-alias app -dname CN=localhost,OU=OATest,O=OATest,L=Shanghai,ST=Shanghai,C=CN \
-storepass testpass
- 导出cer文件
keytool -export -keystore keystore.jks -storetype pkcs12 -alias app \
-file app.cer -storepass testpass
- 基于cer制作信任库(cacerts.jks)
keytool -import -noprompt -keystore cacerts.jks -alias app -file \
app.cer -storepass testpass
使用pem和key文件生成JKS
如用户不是使用keytool工具生成证书文件,则需要将证书转换为jks格式,本章节以用户拿到pem,key文件讲解。例如:用户证书是:wfapp.pem
和wfapp.key
文件,证书别名为:wfapp
,证书密码是testpass
。
- 由于pem不能直接导出jks,因此需要先将
wfapp.pem
和wfapp.key
文件导出pfx格式文件
openssl pkcs12 -export -out wfapp.pfx -in wfapp.pem -inkey wfapp.key
# 执行后需输入两次密码:testpass
- 将pfx转为私钥证书库(keystore.jks)文件
keytool -importkeystore -srckeystore wfapp.pfx -destkeystore keystore.jks \
-srcstoretype PKCS12 -deststoretype pkcs12 -srcstorepass testpass \
-storepass testpass
# -srcstorepass <arg> 源密钥库口令
# -storepass <arg> 证书库口令,此处设置密码与源密码一致
- 查看jks信息,查看keystore别名
keytool -list -v -keystore keystore.jks -storepass testpass
# 执行后可以看到如下信息
# 密钥库类型: PKCS12
# 密钥库提供方: SUN
# 您的密钥库包含 1 个条目
# 别名: 1
# ……
- 根据查看结果发现,证书别名设置为1,可以使用如下命令修改别名
keytool -changealias -keystore keystore.jks -alias 1 -destalias wfapp \
-storepass testpass
# -alias <alias> 证书中当前的alias(别名)
# -destalias <destalias> 指定的是要修改的别名名称
- 修改后,可以通过命令查看别名修改成功。
- 生成信任库(cacerts.jks)文件
keytool -export -keystore keystore.jks -storetype pkcs12 -alias wfapp \
-file wfapp.cer -storepass testpass
keytool -import -noprompt -keystore cacerts.jks -alias wfapp \
-file wfapp.cer -storepass testpass
使用keystore和cer文件生成JKS
用户申请的证书如果是.keystore
、.cer
格式文件,需要将.keystore
转成P12格式,再使用keytoo工具转换为jks文件。例如用户获取到app1.keystore
、app1.cer
操作示例如下:
- 生成keystore.jks文件
# keystore转成p12格式
keytool -importkeystore -srckeystore app1.keystore -srcstoretype JKS -deststoretype PKCS12 -destkeystore app1.p12
# p12转成jks格式
keytool -v -importkeystore -srckeystore app1.p12 -srcstoretype PKCS12 -destkeystore keystore.jks -deststoretype JKS
#查看生成的jsk格式证书,可以根据需要调整证书别名,例如设置别名为app1
keytool -v -list -keystore keystore.jks
- 生成cacerts.jks文件
# 生成别名为app1的cacerts.jks
keytool -import -alias app1 -file app1.cer -keystore cacerts.jks
# 查看生成的jsk格式证书
keytool -v -list -keystore cacerts.jks
合并证书
由于PAS V6.5中SSL证书除了用于应用访问使用,也会用于PAS V6.5自身的功能,因此不能直接进行证书替换,而是要将用户生成的证书私钥证书库与信任库和PAS V6.5携带的JKS文件进行合并。
注意:PAS V6.5携带的证书包含两个别名:s1as
和pas-instance
,因此请用户注意证书别名不要冲突。
本章节将讲解如何进行JKS合并:
例如用户生成的JKS文件文件路径:/home/test/ssl/keystore.jks
,/home/test/ssl/cacerts.jks
,证书别名:wfapp
,密码口令:testpass
。
PAS V6.5安装在/opt/primeton
目录下,则PAS V6.5的JKS文件路径:/opt/primeton/pas6/pas/domains/domain1/config/keystore.jks
,/opt/primeton/pas6/pas/domains/domain1/config/cacerts.jks
,密码口令:changeit
。
- 停止PAS V6.5服务,备份PAS V6.5的证书的私钥证书库与信任库。
- 拷贝PAS V6.5证书到临时目录,创建合并证书目录
cd /home/test/ssl
mkdir old
mkdir new
cp /opt/primeton/pas6/pas/domains/domain1/config/*.jks /home/test/ssl/old
- 合并keystore.jks
keytool -importkeystore -srckeystore /home/test/ssl/old/keystore.jks \
-destkeystore /home/test/ssl/new/keystore.jks -srcstorepass changeit \
-deststorepass changeit -deststoretype pkcs12
keytool -importkeystore -srckeystore /home/test/ssl/keystore.jks \
-destkeystore /home/test/ssl/new/keystore.jks -srcstorepass testpass \
-deststorepass changeit -destkeypass changeit -deststoretype pkcs12
- 合并cacerts.jks
keytool -importkeystore -srckeystore /home/test/ssl/old/cacerts.jks \
-destkeystore /home/test/ssl/new/cacerts.jks -srcstorepass changeit \
-deststorepass changeit -deststoretype pkcs12
keytool -importkeystore -srckeystore /home/test/ssl/cacerts.jks \
-destkeystore /home/test/ssl/new/cacerts.jks -srcstorepass testpass \
-deststorepass changeit -deststoretype pkcs12
- 将合并后的SSL证书替换PAS V6.5原先使用的证书
cp /home/test/ssl/new/* /opt/primeton/pas6/pas/domains/domain1/config
配置应用SSL证书
将合并的ssl证书放到PAS V6.5后,启动PAS V6.5服务,配置应用使用的证书。
-
使用管理员登录PAS V6.5管理控制台
-
配置HTTP监听程序
-
如应用部署到默认server上,点击PAS V6.5管理控制台左侧[配置/server-config/HTTP 服务/HTTP 监听程序]菜单项,进入HTTP 监听程序页面
-
如应用部署到默认独立实例上,例如独立实例名为
ins1
,点击左侧[配置/ins1-config/HTTP 服务/HTTP 监听程序]菜单项,进入HTTP 监听程序页面。 -
如应用部署到默认集群上,例如集群名为
clusterA
,点击左侧[配置/clusterA-config/HTTP 服务/HTTP 监听程序]菜单项,进入HTTP 监听程序页面。
-
-
点击
http-listener-2
链接进入编辑 HTTP 监听程序
页面,点击 [SSL] tab页,配置证书昵称,此处填写用户导入证书的别名,设置后点击<保存>按钮。 -
保存后,在浏览器访问查看证书是否正确,例如:https端口:
8181
,服务器IP地址:127.0.0.1
。在浏览器中访问https://127.0.0.1:8181。-
访问时如果提示
您的连接不是私密连接
,这是因为浏览器认为证书不是专业机构发放,需要点击继续前往访问页面。 -
访问页面成功,可以在浏览器中查看证书信息,查看证书颁发者与实际一致,SSL证书替换完成。
-
【原文链接】
http://doc.primeton.com/pages/viewpage.action?pageId=82157056