tomcat------https单向认证和双向认证
一、https分为单向认证和双向认证:
单向认证就是说,只有客户端使用ssl时对服务器端的证书进行认证,也就是说,客户端在请求建立之前,服务器端会向客户端发送一个证书,一般情况下,这种证书都是由自己或企业自行发布的,所以在客户端使用https时,会跳出“是否信任并继续”,点击信任则表示客户端信任服务器端证书,才可以继续交互。
双向认证,就是服务器端和客户端都对双方的证书进行认证,这时除了单向认证外,还需要在服务器端的受信任证书列表中加入客户端的证书,这样服务器端才能信任客户端的请求。
二、配置:
1.单向认证配置:
(1)首先使用keytool生成服务端密钥仓库,命令: keytool -genkey -keyalg RSA -alias tomcatsso -dname "CN=localhost" -keystore d:\tomcatsso.keystore -storepass changeit
命令参数-genkey表示是要生成新的密钥库,keyalg表示使用的密钥生成算法是RSA,alias表示别名,keystore表示生成的密钥库存储在什么地方,文件格式可以自定义,-storepass是表示密钥库的密码。
该步骤生成了一个密钥库,该密钥库包含私钥和公钥等文件。把它用于服务器端的证书库,用于客户端浏览器认证服务端。
(2)开启tomcat对ssl的支持,具体方法是去掉 <Connector port="8443"...>这一段的注释,并在本段的末尾加上keystoreFile="d:\tomcatsso.keystore" keystorePass="changeit"这两个属性,这两个属性会告诉tomcat去哪儿寻找服务器端密钥库。重启tomcat,至此tomcat对https的修改完成。
(3) 客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的.cer或.crt文件,使用如下命令:
keytool -keystore d:\tomcatsso.keystore -export -alias tomcat -file D:\home\tomcat.cer
然后双击D:\home\tomcat.cer文件,选择安装到“受信任的根证书颁发机构”下面。
如果没有第三步,浏览器会跳出“是否信任并继续”,点击信任则表示客户端信任服务器端证书,才可以继续交互。消除该项请使用OPenSSL申请一个正式的服务器证书,参考http://blog.csdn.net/jasonhwang/article/details/2344768
2.双向认证配置:
(1) 为客户端(即IE或firefox)生成证书库,以便让服务器来验证它。为了能将证书顺利导入至IE和Firefox,证书库格式应该是PKCS12,即生成证书的时候storetype是PKCS12。因此,使用如下命令生成:
keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore D:\home\client.keys
客户端的CN可以是任意值。
(2)在客户端安装证书库。注意:不能导入.cer或者.crt格式文件,因为它会把这些文件当做服务端的认证文件,单向认证自动安装。
打开IE->工具->内容->证书->个人->导入->选择任意文件 D:\home\client.keys ->输入密钥。一定要存在个人区。可以参考《http://www.linuxyw.com/a/WEBfuwu/20130530/516.html》
(3)让服务端信任客户端证书,由于不能直接将PKCS12格式的证书库导入,必须先把服务器证书导出为一个单独的.cer或.crt文件,
导出的客户端证书导入服务端受信任的证书库,该命令表示服务器端信任该证书,命令:keytool -import -alias tomcatsso -file D:\home\client.cer -keystore D:\home\client.trustkeys ,不必先建client.trustkeys库;
或者导入默认的服务器端信任证书库,命令:keytool -import -alias tomcatsso -file D:\home\client.cer -keystore "%java_home%/jre/lib/security/cacerts" -storepass changeit
这里的java_home是tomcat使用的jdk的位置,"%java_home%/jre/lib/security/cacerts"的 cacerts是个无后缀文件,表示服务器认证客户端时使用的根证书库。
参考文章:《keytool命令使用实例》 http://www.360doc.com/content/10/0121/10/633992_14065815.shtml
《使用key配置https》 http://www.blogjava.net/stevenjohn/archive/2012/08/22/385989.html
tomcat------https单向认证和双向认证的更多相关文章
- Tomcat添加HTTPS单向认证和双向认证
前言 前一段时间有了解如何配置Tomcat服务为Https单向认证和双向认证,当时也做了一些记录,今天开始写博客,就把以前的记录拿出来整理下,分享给大家.本文没有介绍证书如何生成,会在下一篇博文里介绍 ...
- SSL单向认证和双向认证说明
SSL单向认证和双向认证说明 一.SSL双向认证具体过程 浏览器发送一个连接请求给安全服务器. 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器. 客户浏览器检查服务器送过来的证书是否是由自己 ...
- SSL的单向认证和双向认证
原文地址:http://alvinhu.com/blog/2013/06/20/one-way-and-two-way-ssl-authentication/?utm_source=tuicool&a ...
- https 单向认证和双向认证配置
HTTPS 是我们开发中经常用到的通信加密技术,能有效保护我们网络访问中的安全,本文主要讲解单向 和 双向 https 的配置.关于https 的实现原理在这里我就不赘述了,附上阮一峰老师的关于htt ...
- https单向认证和双向认证区别
关于证书 1.每个人都可以使用一些证书生成工具为自己的站点生成证书(比如jdk的keytool),大家称它为“自签名证书”,但是自己生成的证书是不被互联网承认的,所以浏览器会报安全提示,要求你手动安装 ...
- Https单向认证和双向认证介绍
一.Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准.HTTP协议传输的数据都是未加密的,也就是明文的,因 ...
- Https、OpenSSL自建CA证书及签发证书、nginx单向认证、双向认证及使用Java访问
0.环境 本文的相关源码位于 https://github.com/dreamingodd/CA-generation-demo 必须安装nginx,必须安装openssl,(用apt-get upd ...
- 图解 https 单向认证和双向认证!
来源: 一.Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准.HTTP协议传输的数据都是未加密的,也就是明 ...
- https单向认证和双向认证
单向认证: .clinet<--server .clinet-->server .client从server处拿到server的证书,通过公司的CA去验证该证书,以确认server是真实的 ...
随机推荐
- Hdu1089
#include <stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b)!=EOF){ p ...
- HTML基本标签大全
HTML标签 <h#></h#>标题标签<hr/>水平线,单标记<p></p>段落标签  空格<i></i ...
- 使用Spring Boot和Gradle创建AngularJS项目
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...
- wordpress教程之get_option()
get_option函数的作用 如果你想开发自己的一个wordpress插件,那么也许你有些数据希望保存,这些自定义数据一起都保存在 wordpress数据库的wp_options表,wp_optio ...
- 【转】WPF - 第三方控件
WPF - 第三方控件 目前第三方控件在网上形成巨大的共享资源,其中包括收费的也有免费的,有开源的也有不开源的,合理的使用第三方控件将使项目组的工作事半功倍.比如项目中有些复杂的业务逻辑.有些绚丽的效 ...
- [ArcGIS Engine]栅格数据处理 RasterDataset RasterLayer Raster RasterBandCollection
原文 http://www.cnblogs.com/zoe-j/archive/2012/03/22/2412403.html 1.由RasterLayer 得到RasterDataset IRast ...
- zend server 和zend studio安装
zend server安装完后需要更改一个xml文件. 用记事本打开D:\Program Files\Zend\ZendServer\etc\ZendEnablerConf.xml文件. 将 锘??x ...
- Linux系统编程(19)——正则表达式在sed和awk中的使用
sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出.sed和 ...
- Notepad++背景颜色设置
经常试用notepad++看代码,白色的背景连续看的时间长了眼睛很容变花,所以找了相关的设置选项,分享给大家 具体设置步骤如下: 然后如下设置 这样前景色背景色已经发生改变了哟,下面再修改下选中行的背 ...
- 蚂蚁的难题(二)首尾相连数组的最大子数组和(DP)
蚂蚁的难题(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 下雨了,下雨了,蚂蚁搬家了. 已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种食材 ...