大概步骤
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来生成证书,这些证书,在各大浏览器中是认识不出来的,很多会提示不是安全的证书。如果是商业用途的话,就要花费银子从第三方的证书机构申请。
相关推荐
本资源是一个 CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证配置示例。详细如何配置请参考博客《图文:CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证》,地址是:...
### Tomcat配置SSL双向认证详解 #### 一、SSL双向认证概述 SSL(Secure Sockets Layer,安全套接层)是一种用于确保Web通信安全的技术,它通过加密数据传输来保护信息不被未授权访问。SSL协议的核心是实现客户端与...
Apache Tomcat配置SSL双向认证是实现安全通信的重要步骤,尤其对于需要高度安全性的Web应用程序。在本文中,我们将深入探讨如何在Tomcat 6环境中设置SSL双向认证,确保客户端和服务器之间的通信既加密又经过身份验证...
以上就是Tomcat配置SSL的基本流程。在实际操作中,你可能还需要考虑其他因素,如证书链的导入、支持HSTS(HTTP Strict Transport Security)以强制浏览器始终使用HTTPS、以及配置Ciphers以确保最佳的安全性和兼容性...
通过 Tomcat 实现 SSL 双向认证需要同时配置 Web 服务器证书和客户端证书,并在服务器和客户端之间正确安装根证书。配置 Tomcat 实现 SSL 双向认证可以提高数据传输的安全性,保护网络通信的安全。
标题中的“tomcat配置ssl-单点登录(sso)”指的是在Apache Tomcat服务器上配置SSL安全套接层,以及实现单点登录(Single Sign-On, SSO)功能。这是一个涉及网络安全和用户认证的重要主题,主要目标是提高Web应用的...
通过上述步骤,我们可以在Tomcat6上成功配置SSL双向认证,增强了Web服务的安全性和可信度。然而,实际操作中还需考虑证书的有效期管理、备份策略以及密钥长度的选择等问题,以确保长期的系统稳定性和安全性。此外,...
本文将详细介绍如何在 Tomcat 中实现 SSL 双向认证,包括使用 JDK 的 keytool 工具创建证书、配置 Tomcat 服务器和客户端证书等。 一、SSL 双向认证的重要性 在 Web 应用程序中,安全性是非常重要的,特别是在涉及...
**标题:** Tomcat6配置SSL **描述:** 在互联网中,数据传输的安全性至关重要,特别是在涉及用户敏感信息的Web应用中。SSL(Secure Sockets Layer)协议是实现这种安全性的基础,它通过加密通信和身份认证来保护网络...
本示例将深入探讨如何使用Tomcat搭建SSL(Secure Socket Layer)双向认证环境,以及通过Java原生类库SSLSocket进行编程,以及使用Apache的Httpclient库模拟安全的客户端请求。以下是对这些知识点的详细讲解。 首先...
【标签】:Tomcat, SSL, 配置SSL, 双向认证 【正文】: 一、SSL基础 1. **Tomcat简介**:Tomcat是一个由Apache Jakarta项目维护的开源Web应用服务器,支持JSP1.2和Servlet2.3规范。由于其免费、稳定和高效的特点...
以上就是Tomcat SSL认证设置及证书自动生成的完整流程,包括了使用OpenSSL和keytool生成证书、在Tomcat中配置SSL以及在客户端浏览器导入证书的详细步骤。这个过程中,安全性和合规性是至关重要的,因为自签发的证书...
**CAS 单点登录原理与实现** ...通过以上步骤,你可以实现CAS单点登录,并在Tomcat服务器上配置SSL,确保通信安全。同时,正确集成CAS资源,能够让你的应用系统无缝接入CAS认证体系,提升用户体验。
4. **修改Tomcat配置**: - 打开Tomcat的`conf/server.xml`配置文件。 - 在`<Connector>`标签中添加HTTPS配置,设置端口、Keystore文件路径、别名和密码等信息。 - 示例配置: ```xml SSLEnabled="true" ...
由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,我们必须先把客户端证书导出为一个单独的CER文件,使用如下命令: keytool...
### tomcat配置双向SSL认证详解 #### 一、SSL与双向认证基础概念 - **SSL(Secure Sockets Layer)**:安全套接层协议,用于为互联网通信提供安全保障的一种技术。它通过加密数据来保护传输过程中的信息安全。 - *...
本教程将深入讲解如何在Tomcat中配置SSL,以便在开发和部署Java Web应用时,能够提供安全的数据交换环境。 首先,了解SSL/TLS的基本原理。SSL/TLS协议用于在客户端浏览器和服务器之间建立安全的连接,它通过使用...