《2022年通过HTTPS加密方式访问webservice方法 .pdf》由会员分享,可在线阅读,更多相关《2022年通过HTTPS加密方式访问webservice方法 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、通过 HTTPS加密方式访问web service方法web service在企业应用中常常被用作不同系统之间的接口方式。但是如果没有任何安全机制的话,显然是难以委以重任的。比较直接的web service加密方式就是使用HTTPS方式 (SSL 证书加密 )加密连接,并且只允许持有信任证书的客户端连接,即SSL双向认证。这样就保证了连接来源的可信度以及数据在传输过程中没有被窃取或篡改。通过 HTTPS加密方式访问web service具体方法如下:【准备工作】(1) 检查 JDK的环境变量是否正确。本文使用JDK 1.6 (2) 准备 web服务器,这里选用TOMCAT 6.0 (3) 准备
2、 web service服务端和客户端。【生成证书】这里用到的文件,这里存放在D:/SSL/ 文件夹内, 其中 D:/SSL/server/内的文件是要交给服务器用的,D:/SSL/client/内的文件是要交给客户端用的。1 生成服务端证书开始 -运行 -CMD-在 dos 窗口执行下执行命令:keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/SSL/server/tomcat.keystore -dname CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN -validity
3、 3650 -storepass zljzlj -keypass zljzlj 说明:keytool 是 JDK提供的证书生成工具,所有参数的用法参见keytool help -genkey 创建新证书-v 详细信息-alias tomcat 以”tomcat”作为该证书的别名。这里可以根据需要修改-keyalg RSA 指定算法-keystore D:/SSL/server/tomcat.keystore 保存路径及文件名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共
4、4 页 - - - - - - - - - -dname CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN 证书发行者身份,这里的 CN要与发布后的访问域名一致。但由于这里是自签证书,如果在浏览器访问,仍然会有警告提示。真正场景中建议申请CA机构 ( wosign ) 签发的 SSL证书更安全。-validity 3650证书有效期,单位为天-storepass zljzlj 证书的存取密码-keypass zljzlj 证书的私钥2 生成客户端证书执行命令:keytool genkey v alias client keyalg RSA st
5、oretype PKCS12 keystore D:/SSL/client/client.p12 dname CN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN validity 3650 storepass client keypass client说明:参数说明同上。这里的-dname 证书发行者身份可以和前面不同,到目前为止,这2个证书可以没有任何关系。下面要做的工作才是建立2 者之间的信任关系。3 导出客户端证书执行命令:keytool export alias client keystore D:/SSL/client/client.p12 storetyp
6、e PKCS12 storepass client rfcfile D:/SSL/client/client.cer说明:-export 执行导出-file 导出文件的文件路径4 把客户端证书加入服务端证书信任列表执行命令:keytool import alias client v file D:/SSL/client/client.cer keystore D:/SSL/server/tomcat.keystore storepass zljzl说明:参数说明同前。这里提供的密码是服务端证书的存取密码。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
7、- - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 5 导出服务端证书执行命令:keytool -export -alias tomcat -keystore D:/SSL/server/tomcat.keystore -storepass zljzlj -rfc -file D:/SSL/server/tomcat.cer 说明:把服务端证书导出。这里提供的密码也是服务端证书的密码。6 生成客户端信任列表执行命令:keytool -import -file D:/SSL/server/tomcat.cer -store
8、pass zljzlj -keystore D:/SSL/client/client.truststore -alias tomcat noprompt 说明:让客户端信任服务端证书【 配置服务端为只允许HTTPS连接】1 配置 Tomcat 目录下的 /conf/server.xml Xml 代码: 说明:在 server.xml里面这段内容本来是被注释掉的,如果想使用https的默认端口443,请修改这里的port参数。其中的clientAuth=true 指定了双向证书认证。2 配置服务端项目web.xml 在之后增加 Xml 代码: 名师资料总结 - - -精品资料欢迎下载 - - -
9、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - SSL /service/*!- 全站使用 SSL /*- SSL required CONFIDENTIAL 说明:这里限制了WEB service服务地址的访问必须为https连接。 要根据你的web service服务地址配置。【修改客户端代码】在执行访问之前,增加Java 代码:System.setProperty(.ssl.trustStore, D:/SSL/client/client.truststore); Syst
10、em.setProperty(.ssl.trustStorePassword,zljzlj); System.setProperty(.ssl.keyStoreType,PKCS12) ; System.setProperty(.ssl.keyStore,D:/SSL/client/client.p12) ; System.setProperty(.ssl.keyStorePassword,client) ; String endPoint=https:/127.0.0.1:8443/easbCut/services/ApplyFormService; . 通过设置参数来指定客户端连接时所使用的客户端证书,这里还可以采用修改JVM启动参数的的方式来执行,但出于不影响其他功能的考虑,这里采用System.setProperty的方式来设置这些参数,在使用结束后, 可以还原这些参数配置。做为客户端的开发者,可以把拿到的证书文件后,只执行步骤3。本文来源:字节技术 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -