转载自:http://juncao2011.iteye.com/blog/973988
tomcat6配置:
1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源
2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址
如果只是加密,我感觉单向就行了。
如果想要用系统的人没有证书就访问不了系统的话,就采用双向
单向配置:
第一步:为服务器生成证书
使用keytool 为 Tomcat 生成证书,假定目标机器的域名是“ localhost ”, keystore 文件存放在“ C:\tomcat.keystore ”,口令为“ password ”,使用如下命令生成:
keytool -genkey -v -alias tomcat -keyalg RSA -validity 3650 -keystore c:\tomcat.keystore -dname "CN=localhost,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass password -keypass password
这个tomcat.cer是为了解决不信任时要导入的
keytool -export -alias tomcat -keystore c:\tomcat.keystore -file c:\tomcat.cer -storepass password
第四步:配置Tomcat 服务器
打开Tomcat 根目录下的 /conf/server.xml ,找到如下配置段,修改如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="C:/tomcat.keystore" keystorePass="password" >
特别需要注意的是:protocol里面的值.如果用http 1.1,那么https的链接就会打不开.这也是我后期订正的
应用程序的web.xml 可以加上这句话: 具体web系统
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<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>
到这里启动tomcat,输入 https://localhost:8443/
这时再打开会弹出一个提示框:证书不可信任,有一个警告,说什么需要机构颁发。
这时再双击第一步生成的tomcat.cer。一直下一步,最后选“是”。
导入后,再输入地址就不是提示了。直接转向tomcat的猫页,说明成功了。
双向配置:
第一步:为服务器生成证书
使用keytool 为 Tomcat 生成证书,假定目标机器的域名是“ localhost ”, keystore 文件存放在“ C:\tomcat.keystore ”,口令为“ password ”,使用如下命令生成:
keytool -genkey -v -alias tomcat -keyalg RSA -validity 3650 -keystore c:\tomcat.keystore -dname "CN=localhost,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass password -keypass password
这个tomcat.cer是为了解决不信任时要导入的
keytool -export -alias tomcat -keystore c:\tomcat.keystore -file c:\tomcat.cer -storepass password
第二步:为客户端生成证书
下一步是为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE 和 Firefox ,证书格式应该是 PKCS12 ,因此,使用如下命令生成:
keytool -genkey -v -alias myKey -keyalg RSA -storetype PKCS12 -validity 3650 -keystore C:\my.p12 -dname "CN=MyKey,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass password -keypass password
第三步:让服务器信任客户端证书
由于是双向SSL 认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将 PKCS12 格式的证书库导入,我们必须先把客户端证书导出为一个单独的 CER 文件,使用如下命令:
keytool -export -alias myKey -keystore C:\my.p12 -storetype PKCS12 -storepass password -rfc -file C:\my.cer
通过以上命令,客户端证书就被我们导出到“C:\my.cer ”文件了。下一步,是将该文件导入到服务器的证书库,添加为一个信任证书:
keytool -import -v -file C:\my.cer -keystore c:\tomcat.keystore -storepass password
通过list 命令查看服务器的证书库,我们可以看到两个输入,一个是服务器证书,一个是受信任的客户端证书:
keytool -list -keystore c:\tomcat.keystore -storepass password
第四步:配置Tomcat 服务器
打开Tomcat 根目录下的 /conf/server.xml ,找到如下配置段,修改如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="C:/tomcat.keystore" keystorePass="password"
truststoreFile="C:/tomcat.keystore" truststorePass="password"/>
应用程序的web.xml 可以加上这句话: 具体web系统
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<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>
到这里启动tomcat,输入 https://localhost:8443/,是访问不了的:原因客户端证书没有导入浏览器
双击 “C:\my.p12” 即可将证书导入至 IE :输入创建时候的密码,password
这时再打开会弹出一个提示框:证书不可信任,有一个警告,说什么需要机构颁发。
这时再双击第一步生成的tomcat.cer。一直下一步,最后选“是”。
导入后,再输入地址就不是提示了。直接转向tomcat的猫页,说明成功了。
其他:
1.ssl默认端口是443,如果web系统不需要带端口访问的,可以修改,去找找资料,我没试过。
2.如果要批量生成客户端的话,找找批量生成工具,我搜到过。
分享到:
相关推荐
标题 "keytool+tomcat 单向/双向认证的配置" 涉及的是在Java安全领域中的证书管理和服务器身份验证。keytool是Java提供的一个命令行工具,用于管理Java密钥库(keystore),而Tomcat是广泛使用的Java应用服务器。当...
Tomcat配置SSL单向认证时,主要步骤包括: 1. 获取并安装SSL证书:可以是自签名证书或者由权威CA(证书颁发机构)签发的证书。 2. 在`server.xml`配置文件中配置`<Connector>`元素,指定`scheme="https"`, `secure=...
Tomcat作为流行的Java Servlet容器,提供了支持HTTPS协议的能力,这包括了单向认证(也称为服务器认证)和双向认证(也称为客户端认证)。这两种认证机制都是基于SSL(Secure Sockets Layer)和TLS(Transport Layer...
标题中的“Tomcat配置HTTPS单项认证”涉及到的是在Apache Tomcat服务器上设置安全套接层(SSL)以实现HTTPS通信的过程,尤其是关于单向认证(也称为客户端认证)的配置。在互联网上,HTTPS是HTTP协议的安全版本,...
本文将详细介绍如何在 Tomcat 中实现 SSL 双向认证,包括使用 JDK 的 keytool 工具创建证书、配置 Tomcat 服务器和客户端证书等。 一、SSL 双向认证的重要性 在 Web 应用程序中,安全性是非常重要的,特别是在涉及...
本文将详细阐述如何使用Tomcat服务器配置HTTPS双向认证的过程。 首先,需要明确什么是HTTPS双向认证。HTTPS双向认证是指客户端与服务器在通信过程中,双方都要进行身份验证。也就是说,不仅服务器需要验证客户端的...
6. **SSL握手过程**:在SSL双向认证中,握手过程比单向认证复杂,包括了服务器发送其证书,客户端验证服务器证书并发送自己的证书,服务器验证客户端证书等步骤。 7. **安全性提升**:双向认证能有效防止中间人攻击...
标题中的“Apache 2 mod_jk tomcat 5 双向SSL认证 传递证书信息”涉及到的是在Web服务器(Apache)与应用服务器(Tomcat)之间建立安全通信的配置。这个配置主要是为了实现更高级别的安全性,即双方都需要验证彼此的...
不同于传统的单向认证,双向认证不仅要求服务器向客户端证明自己的身份,同时也要求客户端向服务器证明其身份。这种模式在一些高安全性的应用场景,如金融、医疗等领域中尤为常见。 1. **生成服务器证书** 使用JDK...
- 更多关于Java实现SSL双向认证的信息可参考:“java实现SSL双向认证”。 3. **OpenSSL命令行测试**: - 使用`OpenSSL`命令行工具直接连接到`Tomcat`服务器,以测试SSL双向验证过程。 ```bash openssl s_client...
Tomcat 7配置SSL双向认证需要用到Java提供的Keytool工具,Keytool是一个用于管理和创建密钥库(keystore)的命令行工具,其中包含了密钥实体(私钥和公钥)和可信任的证书实体(公钥)。以下是配置SSL双向认证的步骤...
在Java的Web应用服务器Tomcat中,为了增强通信的安全性,常常会采用SSL(Secure Sockets Layer)协议进行数据传输,而SSL中的双向认证(Mutual TLS)则是一种更为严谨的安全策略。本教程将详细讲解如何在Tomcat中...
实现双向认证需要客户端也有自己的证书,并且服务器需要配置以信任这个客户端证书。 总结来说,这个教程将涵盖使用TLS/SSL和单向认证来增强API安全性,以及如何在Java Web服务器和Spring Boot应用中配置这些设置。...
4. **SSL双向/单向认证**:双向认证要求客户端和服务器都需验证对方的身份,而单向认证只需服务器验证客户端。openssl可以通过不同的命令行选项来实现这两种认证模式。 5. **导入证书**:生成的证书需要导入到...
此外还有单向认证和双向认证的区别,后者要求客户端也需要进行认证。 2. **CAS服务端**:负责用户的认证、ticket的生成和验证等核心功能。 3. **CAS客户端**:通常是指那些需要接入CAS单点登录系统的应用服务端。 ...
6. **Tomcat配置HTTPS**:要在Tomcat服务器上启用HTTPS,需要生成服务器证书并配置Tomcat。这通常涉及到使用`keytool`工具生成本地密钥库(keystore),包含服务器的公钥和私钥。然后在Tomcat的`server.xml`配置文件...
6. 配置Tomcat的双向认证。 最后,通过`openssl s_client`命令进行模拟建链,以验证配置是否成功。对于单向认证和双向认证,分别使用不同的命令参数: - 单向认证模拟建链:`openssl s_client -connect ip:port -...