大概步骤
1:通过JAVA自带的keytool生成keystore;
2:TOMCAT启用HTTPS,并配置keystore;
3:根据keystore导出客户端的证书文件;
4:客户端导入证书文件;
5:测试
环镜
jdk:1.7.60
tomcat:7.0.52
客户端和服务端都在本机
======================================
1:用JDK自带的keytool工具生成证书:
keytool -genkey -alias uums -keyalg RSA -keystore d:/keys/uumskeystore
注:在填CN时:一定要填你的域名,不能是IP地址。tomcat官网手册也有强调,没有域名可以通过修改hosts文件虚拟一个域名,例如:127.0 .0.1 xxx.xxx.com
2:配置Tomcat启用 HTTPS
<!-- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> -->
将以上代码注释去掉并修改成:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="443" maxThreads="150" scheme="https" secure="true" SSLEnabled="true" keystoreFile="D:\keys\uumskeystore" keystorePass="123com" clientAuth="false" sslProtocol="TLS"/>
注:keystorepass是你的keystore的密码,port默认是8443我改成443了,请把server.xml中其它8443端口也改过来。
如果想把通过http访问的请求都跳转到https访问,需要在conf/web.xml里的尾部加入以下配置
<login-config> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name> </login-config> <security-constraint> <web-resource-collection > <web-resource-name >SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
3:导出客户端证书
keytool -export -file d:/keys/uums.crt -alias uums -keystore d:/keys/uumskeystore
注意:导出客户证书,是根据刚刚生成的keystore来导出的,所以内容必须要与keystore一至。
成功导出uusm.crt证书,可以分发给客户应用的JDK使用了。
4:客户端导入证书
keytool -import -keystore D:/Java/jdk1.7.0_60/jre/lib/security/cacerts -file D:/keys/uums.crt -alias uums
注:如果提示证书存在可以通过下面的操作删除
keytool -delete -trustcacerts -alias uums -keystore D:\Java\jd k1.7.0_60\jre\lib\security\cacerts
导入成功后,客户端访问服务端就可以通过认证了。
5:测试略
总结:
1:如果在导入或导出证书出现以下错误:keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
请输入密码:changeit
2:这里只是为了演示,所以用了JAVA 自带的keytool来生成证书,这些证书,在各大浏览器中是认识不出来的,很多会提示不是安全的证书。如果是商业用途的话,就要花费银子从第三方的证书机构申请。
相关推荐
Tomcat配置SSL双向认证简单实例
本资源是一个 CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证配置示例。详细如何配置请参考博客《图文:CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证》,地址是:...
本文档基于JDK+apache-tomcat运行环境进行客户端和服务器端https配置,即SSL双向认证配置
tomcat下配置ssl双向认证介绍,有具体的步骤截图。
Tomcat6配置使用SSL双向认证
tomcat配置双向SSL认证[整理].pdf
tomcat实现SSL双向认证配置帮助文档
由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,我们必须先把客户端证书导出为一个单独的CER文件,使用如下命令: keytool...
Tomcat中SSL配置(SSL安全协议认证)
要实现SSL双向认证, 你必须同时配置Web服务器证书和客户端证书, 并且需要在服务器和客户端之间正确安装根证书。如此方可实现如文所示双向认证。
SSL配置手册-双向ssl认证-证书生成-证书生成示例-tomcat配置
Word文档,图文介绍如何配置Tomcat6,实现SSL双向认证通讯
呕心沥血,实践出真知,tomcat的ssl配置,实现双向通信。
在Tomcat_6中配置SSL双向认证(CA_Key)
配置tomcat服务器支持SSL,开启tomcat的安全认证通道,有需求的项目可能用得着
一:生成CA证书 二.生成server证书。 三.生成client证书。 四.根据ca证书生成jks文件 五.配置tomcat ssl 六.导入证书 七.验证ssl配置是否正确
配置适用于正式使用环境下的 Tomcat认证关于如何使用 Tomcat 服务器实现双向 SSL 认证的文章很早就有了,比较实用的文章可以看看 IBM中国网站月
StartSSL是当前免费ssl证书中比较靠谱的,是大家比较省心的一个使用方式,文档中详细介绍,在StartSSL中申请ssl证书和安装到tomcat中的方法(StartSSL注册认证及域名验证未作介绍,自行操作,比较简单。)
一:生成CA证书 二.生成server证书。 三.生成client证书。 四.根据ca证书生成jks文件 五.配置tomcat ssl 六.导入证书 七.验证ssl配置是否正确