`

https单向/双向认证的tomcat配置攻略(转)

 
阅读更多

转载自: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 ,找到如下配置段,修改如下: 

Java代码  收藏代码
  1. <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"   
  2.   
  3.                maxThreads="150" scheme="https" secure="true"   
  4.   
  5.     clientAuth="false" sslProtocol="TLS"   
  6.   
  7.     keystoreFile="C:/tomcat.keystore" keystorePass="password" >   



特别需要注意的是:protocol里面的值.如果用http 1.1,那么https的链接就会打不开.这也是我后期订正的 


应用程序的web.xml 可以加上这句话: 具体web系统 

Java代码  收藏代码
  1. <login-config>   
  2.   
  3. <!-- Authorization setting for SSL -->   
  4.   
  5. <auth-method>CLIENT-CERT</auth-method>   
  6.   
  7. <realm-name>Client Cert Users-only Area</realm-name>   
  8.   
  9. </login-config>   
  10.   
  11. <security-constraint>   
  12.   
  13. <!-- Authorization setting for SSL -->   
  14.   
  15. <web-resource-collection >   
  16.   
  17. <web-resource-name >SSL</web-resource-name>   
  18.   
  19. <url-pattern>/*</url-pattern>   
  20.   
  21. </web-resource-collection>   
  22.   
  23. <user-data-constraint>   
  24.   
  25. <transport-guarantee>CONFIDENTIAL</transport-guarantee>   
  26.   
  27. </user-data-constraint>   
  28.   
  29. </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 ,找到如下配置段,修改如下: 

Java代码  收藏代码
  1. <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"   
  2.   
  3.                maxThreads="150" scheme="https" secure="true"   
  4.   
  5.     clientAuth="true" sslProtocol="TLS"   
  6.   
  7.     keystoreFile="C:/tomcat.keystore" keystorePass="password"   
  8.   
  9. truststoreFile="C:/tomcat.keystore" truststorePass="password"/>   



应用程序的web.xml 可以加上这句话: 具体web系统 

Java代码  收藏代码
  1. <!-- Authorization setting for SSL -->   
  2.   
  3. <auth-method>CLIENT-CERT</auth-method>   
  4.   
  5. <realm-name>Client Cert Users-only Area</realm-name>   
  6.   
  7. </login-config>   
  8.   
  9. <security-constraint>   
  10.   
  11. <!-- Authorization setting for SSL -->   
  12.   
  13. <web-resource-collection >   
  14.   
  15. <web-resource-name >SSL</web-resource-name>   
  16.   
  17. <url-pattern>/*</url-pattern>   
  18.   
  19. </web-resource-collection>   
  20.   
  21. <user-data-constraint>   
  22.   
  23. <transport-guarantee>CONFIDENTIAL</transport-guarantee>   
  24.   
  25. </user-data-constraint>   
  26.   
  27. </security-constraint>   


到这里启动tomcat,输入 https://localhost:8443/,是访问不了的:原因客户端证书没有导入浏览器 
双击 “C:\my.p12” 即可将证书导入至 IE :输入创建时候的密码,password 

这时再打开会弹出一个提示框:证书不可信任,有一个警告,说什么需要机构颁发。 
这时再双击第一步生成的tomcat.cer。一直下一步,最后选“是”。 

导入后,再输入地址就不是提示了。直接转向tomcat的猫页,说明成功了。 


分享到:
评论

相关推荐

    keytool+tomcat 单向/双向认证的配置

    标题 "keytool+tomcat 单向/双向认证的配置" 涉及的是在Java安全领域中的证书管理和服务器身份验证。keytool是Java提供的一个命令行工具,用于管理Java密钥库(keystore),而Tomcat是广泛使用的Java应用服务器。当...

    tomcat ssl单向/双向

    Tomcat配置SSL单向认证时,主要步骤包括: 1. 获取并安装SSL证书:可以是自签名证书或者由权威CA(证书颁发机构)签发的证书。 2. 在`server.xml`配置文件中配置`&lt;Connector&gt;`元素,指定`scheme="https"`, `secure=...

    利用tomcat服务器配置https双向认证、https单向认证-ssl、tls

    Tomcat作为流行的Java Servlet容器,提供了支持HTTPS协议的能力,这包括了单向认证(也称为服务器认证)和双向认证(也称为客户端认证)。这两种认证机制都是基于SSL(Secure Sockets Layer)和TLS(Transport Layer...

    tomcat配置https单项认证

    标题中的“Tomcat配置HTTPS单项认证”涉及到的是在Apache Tomcat服务器上设置安全套接层(SSL)以实现HTTPS通信的过程,尤其是关于单向认证(也称为客户端认证)的配置。在互联网上,HTTPS是HTTP协议的安全版本,...

    tomcat实现SSL双向认证

    本文将详细介绍如何在 Tomcat 中实现 SSL 双向认证,包括使用 JDK 的 keytool 工具创建证书、配置 Tomcat 服务器和客户端证书等。 一、SSL 双向认证的重要性 在 Web 应用程序中,安全性是非常重要的,特别是在涉及...

    详解用Tomcat服务器配置https双向认证过程实战

    本文将详细阐述如何使用Tomcat服务器配置HTTPS双向认证的过程。 首先,需要明确什么是HTTPS双向认证。HTTPS双向认证是指客户端与服务器在通信过程中,双方都要进行身份验证。也就是说,不仅服务器需要验证客户端的...

    ssl双向认证密钥

    6. **SSL握手过程**:在SSL双向认证中,握手过程比单向认证复杂,包括了服务器发送其证书,客户端验证服务器证书并发送自己的证书,服务器验证客户端证书等步骤。 7. **安全性提升**:双向认证能有效防止中间人攻击...

    Apache 2 mod_jk tomcat 5 双向SSL认证 传递证书信息

    标题中的“Apache 2 mod_jk tomcat 5 双向SSL认证 传递证书信息”涉及到的是在Web服务器(Apache)与应用服务器(Tomcat)之间建立安全通信的配置。这个配置主要是为了实现更高级别的安全性,即双方都需要验证彼此的...

    Tomcat_SSL配置[归类].pdf

    不同于传统的单向认证,双向认证不仅要求服务器向客户端证明自己的身份,同时也要求客户端向服务器证明其身份。这种模式在一些高安全性的应用场景,如金融、医疗等领域中尤为常见。 1. **生成服务器证书** 使用JDK...

    AndroidHttpClient访问Tomcat双向SSL验证服务器.pdf

    - 更多关于Java实现SSL双向认证的信息可参考:“java实现SSL双向认证”。 3. **OpenSSL命令行测试**: - 使用`OpenSSL`命令行工具直接连接到`Tomcat`服务器,以测试SSL双向验证过程。 ```bash openssl s_client...

    利用keytools为tomcat 7配置ssl双向认证的方法

    Tomcat 7配置SSL双向认证需要用到Java提供的Keytool工具,Keytool是一个用于管理和创建密钥库(keystore)的命令行工具,其中包含了密钥实体(私钥和公钥)和可信任的证书实体(公钥)。以下是配置SSL双向认证的步骤...

    在tomcat中使用keytool实现双向验证操作视频

    在Java的Web应用服务器Tomcat中,为了增强通信的安全性,常常会采用SSL(Secure Sockets Layer)协议进行数据传输,而SSL中的双向认证(Mutual TLS)则是一种更为严谨的安全策略。本教程将详细讲解如何在Tomcat中...

    为API设置安全性的教程,使用单向认证与TLSSSL和基于java的web服务器和具有Spring Boot的客户端进.zip

    实现双向认证需要客户端也有自己的证书,并且服务器需要配置以信任这个客户端证书。 总结来说,这个教程将涵盖使用TLS/SSL和单向认证来增强API安全性,以及如何在Java Web服务器和Spring Boot应用中配置这些设置。...

    回调地址CA证书制作说明1

    6. 配置Tomcat的双向认证。 最后,通过`openssl s_client`命令进行模拟建链,以验证配置是否成功。对于单向认证和双向认证,分别使用不同的命令参数: - 单向认证模拟建链:`openssl s_client -connect ip:port -...

    统一身份认证-CAS配置实现

    此外还有单向认证和双向认证的区别,后者要求客户端也需要进行认证。 2. **CAS服务端**:负责用户的认证、ticket的生成和验证等核心功能。 3. **CAS客户端**:通常是指那些需要接入CAS单点登录系统的应用服务端。 ...

    opesnssl证书配置和使用1

    4. **SSL双向/单向认证**:双向认证要求客户端和服务器都需验证对方的身份,而单向认证只需服务器验证客户端。openssl可以通过不同的命令行选项来实现这两种认证模式。 5. **导入证书**:生成的证书需要导入到...

    HTTPStomcat配置[参考].pdf

    5. **双向认证**:双向认证要求客户端也需要证书,服务器不仅要验证自己的身份,还要验证客户端的身份。这样可以确保双方都经过身份验证,增强安全性,常用于银行等高安全性的场景。 6. **Tomcat配置HTTPS**:要在...

Global site tag (gtag.js) - Google Analytics