本文提及的技术中,openacs使用keytool+tomcat配置HTTPS双向证书认证,fishcorecpe需要openacs签署的证书进行验证交互。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
部署步骤:
在/opt/jboss-4.2.3.GA/server/default/conf目录下执行以下指令:
为服务器生成证书:
keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore -validity 36500
为服务器生成PKCS12证书:
keytool -genkey -v -alias clients -keyalg RSA -storetype PKCS12 -keystore clients.p12 -validity 36500
由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件:
keytool -export -alias clients -keystore clients.p12 -storetype PKCS12 -storepass fishcorecpe -rfc -file clients.cer
将客户端证书导入到服务器的证书库,添加为一个信任证书:
keytool -import -v -file clients.cer -keystore tomcat.keystore
通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:
keytool -list -keystore tomcat.keystore
为便于客户端使用,将PKCS12格式证书中的私钥提取并转存为PEM格式:
openssl pkcs12 -nocerts -nodes -in clients.p12 -out clients.pem 用这个
验证 openssl pkcs12 -clcerts -nokeys -in clients.p12 -out clientsv.pem将证书和私钥合并存储在一个证书链文件中:
cat clients.cer clients.pem >fishcore.pem
将fishcore.pem复制到fishcorecpe固件相同目录下。
修改fishcore.conf中acsurl为https格式。
修改/opt/jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer下server.xml文件中Connector port="8443"相关内容为以下:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" address="${jboss.bind.address}"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" keystoreFile="${jboss.server.home.dir}/conf/tomcat.keystore" keystorePass="fishcorecpe"
truststoreFile="${jboss.server.home.dir}/conf/tomcat.keystore" truststorePass="fishcorecpe" sslProtocol="TLS" />
保存,重启openacs后,可以直接运行fishcorecpe,将以https进行交互.
参考: http://blog.sina.com.cn/s/blog_5f64eccd0100p0pc.html
http://blog.sina.com.cn/s/blog_4c95c67e0100xy3m.html
http://www.diybl.com/course/4_webprogram/jsp/jsp_js/200855/113649.html
本文和fishcorecpe中所有涉及的密钥均为 fishcorecpe
使用其他方式生成证书的情况,请google后并生成所有必需的证书后,根据fishcorecpe软件的readme中的配置参数说明进行配置验证。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
部署步骤:
在/opt/jboss-4.2.3.GA/server/default/conf目录下执行以下指令:
为服务器生成证书:
keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore -validity 36500
为服务器生成PKCS12证书:
keytool -genkey -v -alias clients -keyalg RSA -storetype PKCS12 -keystore clients.p12 -validity 36500
由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件:
keytool -export -alias clients -keystore clients.p12 -storetype PKCS12 -storepass fishcorecpe -rfc -file clients.cer
将客户端证书导入到服务器的证书库,添加为一个信任证书:
keytool -import -v -file clients.cer -keystore tomcat.keystore
通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:
keytool -list -keystore tomcat.keystore
为便于客户端使用,将PKCS12格式证书中的私钥提取并转存为PEM格式:
openssl pkcs12 -nocerts -nodes -in clients.p12 -out clients.pem 用这个
验证 openssl pkcs12 -clcerts -nokeys -in clients.p12 -out clientsv.pem将证书和私钥合并存储在一个证书链文件中:
cat clients.cer clients.pem >fishcore.pem
将fishcore.pem复制到fishcorecpe固件相同目录下。
修改fishcore.conf中acsurl为https格式。
修改/opt/jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer下server.xml文件中Connector port="8443"相关内容为以下:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" address="${jboss.bind.address}"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" keystoreFile="${jboss.server.home.dir}/conf/tomcat.keystore" keystorePass="fishcorecpe"
truststoreFile="${jboss.server.home.dir}/conf/tomcat.keystore" truststorePass="fishcorecpe" sslProtocol="TLS" />
保存,重启openacs后,可以直接运行fishcorecpe,将以https进行交互.
参考: http://blog.sina.com.cn/s/blog_5f64eccd0100p0pc.html
http://blog.sina.com.cn/s/blog_4c95c67e0100xy3m.html
http://www.diybl.com/course/4_webprogram/jsp/jsp_js/200855/113649.html
本文和fishcorecpe中所有涉及的密钥均为 fishcorecpe
使用其他方式生成证书的情况,请google后并生成所有必需的证书后,根据fishcorecpe软件的readme中的配置参数说明进行配置验证。