EOS6的客户端接入支持以https的方式调用EOS服务,这要求在EOS的服务器端与客户端做些相应的配置,这里以EOS6的开发版做个简要介绍。
1、生成服务端证书(注:生成证书时,"您的名字与姓氏是什么?"的问题输入信息要和服务器的域名相同,如果在本地测试,则使用localhost)
keytool -genkey -alias tomcat -keyalg RSA -keypass 000000 -storepass 000000 -keystore tomcat.keystore -validity 3600
您的名字与姓氏是什么?
[~wangjq:Unknown]: localhost
您的组织单位名称是什么?
[~wangjq:Unknown]: primeton
您的组织名称是什么?
[~wangjq:Unknown]: rd
您所在的城市或区域名称是什么?
[~wangjq:Unknown]: shanghai
您所在的州或省份名称是什么?
[~wangjq:Unknown]: shanghai
该单位的两字母国家代码是什么
[~wangjq:Unknown]: CN
CN=localhost, OU=primeton, O=rd, L=shanghai, ST=shanghai, C=CN 正确吗?
[~wangjq:否]: Y
2、导出证书,由客户端安装
keytool -export -trustcacerts -alias tomcat -file tomcat.cer -keystore tomcat.keystore -storepass 000000
保存在文件中的认证 <tomcat.cer>
3、将导出的证书导入到客户端JVM中
keytool -import -trustcacerts -alias tomcat -file tomcat.cer -keystore D:/eos_install_home/ga_3409/ide/eclipse/jre/jre/lib/security/cacerts -storepass 000000
Owner: CN=localhost, OU=primeton, O=rd, L=shanghai, ST=shanghai, C=CN
发照者: CN=localhost, OU=primeton, O=rd, L=shanghai, ST=shanghai, C=CN
序号: 4b02077d
有效期间: Tue Nov 17 10:16:29 CST 2009 至: Thu Sep 26 10:16:29 CST 2019
认证指纹:
MD5: 55:81:11:FF:CE:0A:1A:91:02:FC:C8:6F:7C:3A:17:5C
SHA1: 44:6B:1A:1E:15:15 0:C1:A6:FF:75:DB:50:BF:40:F5:0A:BE:F2:2A
信任这个认证? [~wangjq:否]: Y
认证已添加至keystore中。
如果keytool导入证书时出现如下错误:
keytool错误:java.io.IOException:keystore was tampered with,or password was incorrect
原因是你的home目录下是否还有.keystore存在。如果存在那么把他删除掉后再执行或者删除"%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS 再执行。
keytool -delete -trustcacerts -alias tomcat -keystore D:/eos_install_home/ga_3409/ide/eclipse/jre/jre/lib/security/cacerts -storepass 000000
4、查看证书是否真的导入到JVM中
keytool -list -alias tomcat -keystore D:/eos_install_home/ga_3409/ide/eclipse/jre/jre/lib/security/cacerts -storepass 000000
tomcat, 2009-11-17, trustedCertEntry,
认证指纹 (MD5): 55:81:11:FF:CE:0A:1A:91:02:FC:C8:6F:7C:3A:17:5C
5、将tomcat.keystore拷贝到%TOMCAT_HOME%根目录下,配置tomcat的server.xml
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8443" enableLookups="true" scheme="https" secure="true"
acceptCount="100"
useURIValidationHack="false" disableUploadTimeout="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="tomcat.keystore"
keystorePass="000000"/>
6、在IE中导入证书tomcat.cer
7、远程调用的服务,服务注册时需要使用https协议,在利用ServiceContext接口调用EOS服务