tomcat+spring+https
由于开发的接口需要ios调用,而ios即将只支持https,所以最近研究了一下,将成果放在这里记录一下:
.配置tomcat的https:
原文链接:http://jingyan.baidu.com/article/a948d6515d3e850a2dcd2ee6.html
- 利用tomcat服务器配置https双向认证 
方法/步骤
- 为服务器生成证书 - “运行”控制台,进入%JAVA_HOME%/bin目录,使用如下命令进入目录: - cd “c:\Program Files\Java\jdk1.6.0_11\bin” - 使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“D:\home\tomcat.keystore”,口令为“password”,使用如下命令生成: - keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\home\tomcat.keystore -validity 36500 (参数简要说明:“D:\home\tomcat.keystore”含义是将证书文件的保存路径,证书文件名称是tomcat.keystore ;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天 “tomcat”为自定义证书名称)。 - 在命令行填写必要参数: - A、 输入keystore密码:此处需要输入大于6个字符的字符串。 - B、 “您的名字与姓氏是什么?”这是必填项,并且必须是TOMCAT部署主机的域名或者IP[如:gbcom.com 或者 10.1.25.251](就是你将来要在浏览器中输入的访问地址),否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”。 - C、 你的组织单位名称是什么?”、“您的组织名称是什么?”、“您所在城市或区域名称是什么?”、“您所在的州或者省份名称是什么?”、“该单位的两字母国家代码是什么?”可以按照需要填写也可以不填写直接回车,在系统询问“正确吗?”时,对照输入信息,如果符合要求则使用键盘输入字母“y”,否则输入“n”重新填写上面的信息。 - D、 输入<tomcat>的主密码,这项较为重要,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置其它密码也可以,完成上述输入后,直接回车则在你在第二步中定义的位置找到生成的文件。 
- 为客户端生成证书 - 为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,因此,使用如下命令生成: - keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\home\mykey.p12 (mykey为自定义)。 - 对应的证书库存放在“D:\home\mykey.p12”,客户端的CN可以是任意值。双击mykey.p12文件,即可将证书导入至浏览器(客户端)。 
- 让服务器信任客户端证书 - 由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令: - keytool -export -alias mykey -keystore D:\home\mykey.p12 -storetype PKCS12 -storepass password -rfc -file D:\home\mykey.cer - (mykey为自定义与客户端定义的mykey要一致,password是你设置的密码)。通过以上命令,客户端证书就被我们导出到“D:\home\mykey.cer”文件了。 - 下一步,是将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下: - keytool -import -v -file D:\home\mykey.cer -keystore D:\home\tomcat.keystore - 通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书: - keytool -list -keystore D:\home\tomcat.keystore (tomcat为你设置服务器端的证书名)。 
- 让客户端信任服务器证书 - 由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令: - keytool -keystore D:\home\tomcat.keystore -export -alias tomcat -file D:\home\tomcat.cer (tomcat为你设置服务器端的证书名)。 - 通过以上命令,服务器证书就被我们导出到“D:\home\tomcat.cer”文件了。双击tomcat.cer文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。 
- 配置Tomcat服务器 - 打开Tomcat根目录下的/conf/server.xml,找到Connector port="8443"配置段,修改为如下: - <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" - SSLEnabled="true" maxThreads="150" scheme="https" - secure="true" clientAuth="true" sslProtocol="TLS" - keystoreFile="D:\\home\\tomcat.keystore" keystorePass="123456" - truststoreFile="D:\\home\\tomcat.keystore" truststorePass="123456" /> - (tomcat要与生成的服务端证书名一致) - 属性说明: - clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证 - keystoreFile:服务器证书文件路径 - keystorePass:服务器证书密码 - truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书 - truststorePass:根证书密码 
- 测试 - 在浏览器中输入:https://localhost:8443/,会弹出选择客户端证书界面,点击“确定”,会进入tomcat主页,地址栏后会有“锁”图标,表示本次会话已经通过HTTPS双向验证,接下来的会话过程中所传输的信息都已经过SSL信息加密。 - 二、配置应用以便使用 SSL ,例如 https://localhost:8443/yourApp - 打开应用的 web.xml 文件,增加配置如下: 123456789- <- security-constraint- >- <- web-resource-collection- >- <- web-resource-name- >securedapp</- web-resource-name- >- <- url-pattern- >/*</- url-pattern- >- </- web-resource-collection- >- <- user-data-constraint- >- <- transport-guarantee- >CONFIDENTIAL</- transport-guarantee- >- </- user-data-constraint- >- </- security-constraint- >- 将 URL 映射设为 /* ,这样你的整个应用都要求是 HTTPS 访问,而 transport-guarantee 标签设置为 CONFIDENTIAL 以便使应用支持 SSL。 - 如果你希望关闭 SSL ,只需要将 CONFIDENTIAL 改为 NONE 即可。 
 
 
tomcat+spring+https的更多相关文章
- Https系列之二:https的SSL证书在服务器端的部署,基于tomcat,spring boot
		Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ... 
- Spring Boot 揭秘与实战(五) 服务器篇 - Tomcat 启用 HTTPS
		文章目录 1. 生成证书 2. 配置 HTTPS 支持 3. 启动与测试 4. 源代码 Spring Boot 内嵌的 Tomcat 服务器可以启用 HTTPS 支持. 生成证书 使用第三方 CA 证 ... 
- Jenkins deploy war to tomcat over https
		ssl - HTTPS login with Spring Security redirects to HTTP - Stack Overflow https://stackoverflow.com/ ... 
- Tomcat创建HTTPS访问,java访问https
		一 https和ssL HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的 ... 
- Tomcat双向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端超安全通信
		紧接着<Tomcat单向Https验证搭建,亲自实现与主流浏览器.Android/iOS移动客户端安全通信>,此处演示下更安全的双向Https认证的通信机制,为了清晰明了,以下进行单独描述 ... 
- Tomcat单向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端安全通信
		众所周知,iOS9已经开始在联网方面默认强制使用Https替换原来的Http请求了,虽然Http和Https各有各的优势,但是总得来说,到了现在这个安全的信息时代,开发者已经离不开Https了. 网上 ... 
- Tomcat 配置 HTTPS双向认证
		Tomcat 配置 HTTPS 双向认证指引说明: � 本文档仅提供 Linux 操作系统下的指引 � 在阅读本指引前请您在 Linux 部署 JDK 和 Tomcatserver为了 Tomcat ... 
- 完美配置Tomcat的HTTPS
		Tomcat配置HTTPS的文章到处都有,过程也比较简单,随后文中会转一段过来. 但对于启用APR情况下报异常“java.lang.Exception: Connector attribute SSL ... 
- javaweb学习总结十八(软件密码学、配置tomcat的https连接器以及tomcat管理平台)
		一:软件密码学 1:对称加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key).对称加密有很多种算法,由于它效 ... 
随机推荐
- DIV+CSS 网页布局之:三列布局
			1.宽度自适应三列布局 三列布局的原理和两列布局的原理是一样的,只不过多了一列,只需给宽度自适应两列布局中间再加一列,然后重新计算三列的宽度,就实现了宽度自适应的三列布局. 同样的道理,更多列的布局, ... 
- smarty
			模板引擎是用于把模板文件和数据内容合并在一起的程序,便于网站开发有利于代码分离和维护,了解一个模板最好知道其工作原理,以便于实现一通万通. 模板文件一般是HTML xml js等类型文件,如果不用模板 ... 
- PHP - PHPExcel操作xls文件
			读取中文的xls.csv文件会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址:http://phpexcel.codeplex.com/ 1.读取xls文件内容 <?php // ... 
- [转]CentOS Yum 命令详解
			总所周知,Redhat和Fedora的软件安装命令是rpm,但是用rpm安 装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,超级麻烦不说,要是软件不用了需要卸载的话由于卸载掉了某个依 ... 
- sql  join 用法
			SQL JOIN 的用法 关于sql语句中的连接(join)关键字,是较为常用而又不太容易理解的关键字,下面这个例子给出了一个简单的解释 --建表table1,table2:create tabl ... 
- 在Eclipse中安装ADT
			启动 Eclipse,然后选择 Help > Software Updates….在出现的对话框中,单击 Available Software 选项卡. 单击 Add Site 在 Add Si ... 
- HTML5的Server-Sent Events功能的使用
			客户端代码示例 //创建一个新的 EventSource 对象,然后规定发送更新的页面的 URL. var source = new EventSource("http://localhos ... 
- eval
			字符串形式:表达式计算 Vsftp:/root/perl/14# cat aa 9 5 1 2 Vsftp:/root/perl/14# cat a1.pl open (A,aa); while ($ ... 
- C#反射之基础应用
			今天把反射的东西整理了一下 , 提供了最全面的东西 , 当然也是基础的东西 ,在学好了这一切的基础上 , 大家可以学习反射的具体插件等应用 首先我们建立一个类库 , 将它生成为 reflectPrj ... 
- jQuery对象和DOM对象原来不一样啊
			jQuery对象和DOM对象使用说明,需要的朋友可以参考下.1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery ... 
