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 -storetype pkcs12 -keyalg RSA -keystore keystore.jks \ 
-alias app -dname CN=localhost,OU=OATest,O=OATest,L=Shanghai,ST=Shanghai,C=CN \
-storepass testpass
keytool -export -keystore keystore.jks -storetype pkcs12 -alias app \
-file app.cer -storepass testpass
keytool -import -noprompt -keystore cacerts.jks -alias app -file \
app.cer -storepass testpass

使用pem和key文件生成JKS

如用户不是使用keytool工具生成证书文件,则需要将证书转换为jks格式,本章节以用户拿到pem,key文件讲解。例如:用户证书是:wfapp.pemwfapp.key文件,证书别名为:wfapp,证书密码是testpass

openssl pkcs12 -export -out wfapp.pfx -in wfapp.pem -inkey wfapp.key
# 执行后需输入两次密码:testpass
keytool -importkeystore -srckeystore wfapp.pfx -destkeystore keystore.jks \
-srcstoretype PKCS12 -deststoretype pkcs12 -srcstorepass testpass \
-storepass testpass
# -srcstorepass <arg>                   源密钥库口令
# -storepass <arg>                   证书库口令,此处设置密码与源密码一致
keytool -list -v -keystore keystore.jks -storepass testpass
# 执行后可以看到如下信息
# 密钥库类型: PKCS12
# 密钥库提供方: SUN

# 您的密钥库包含 1 个条目

# 别名: 1
# ……
keytool -changealias -keystore keystore.jks -alias 1 -destalias wfapp \
-storepass testpass
# -alias <alias>                  证书中当前的alias(别名)
# -destalias <destalias>          指定的是要修改的别名名称
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.keystoreapp1.cer操作示例如下:

# 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
# 生成别名为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携带的证书包含两个别名:s1aspas-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

cd /home/test/ssl
mkdir old
mkdir new
cp /opt/primeton/pas6/pas/domains/domain1/config/*.jks /home/test/ssl/old
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
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
cp /home/test/ssl/new/* /opt/primeton/pas6/pas/domains/domain1/config

配置应用SSL证书

将合并的ssl证书放到PAS V6.5后,启动PAS V6.5服务,配置应用使用的证书。