Tomcat:配置SSL
SSL简述
SSL就是安全套接字层,是一种允许web浏览器和 web服务器通过安全连接通信的技术。这是一个双向的过程,这意味着 服务器和浏览器在发送数据之前加密所有交流的数据。
SSL有一个重要的特点,就是需要认证。也就是说当使用Web浏览器访问Server时,Server会提供给浏览器一个证书。
在使用tomcat时,存在下面几种情况:
1)默认情况下,是不启用SSL的,通过https协议访问应用肯定是失败的。
2)只启用SSL时,只能通过https协议来访问。(这里不说AJP)
3)同时启用HTTP,HTTPS,就可以通过HTTP与HTTPS同时访问了。
生成keystore
证书是需要有密钥库来支撑,KeyStore文件就代表了密钥库。Key文件有多种形式,目前Tomcat支持的keystore有:JKS,PKCS11,PKCS12。其中JKS是java keystore,是由java实现的,可以通过jdk/bin/keytool工具创建keystore文件。PKCS12是一个网络标准,可以通过OpenSSL、Microsoft的Key-Manager来管理。
下面就使用JKS来作用密钥库格式。
-keyalg是生成公钥、私钥的算法。常用的有RSA、DSA等。
使用上述使用时密码必须是一致的,这一点是Tomcat要求的。其中第一个密码是keystore文件的密码,访问这个文件需要有密码的,最后的密码是生成的key的密码。
生成的keystore文件的位置,默认是在${user.home}/.keystore,如果想要改变位置,可以使用命令:
在server.xml配置SSL
KeystorePass就是keystore文件的访问密码。你可以修改为其它的。
keystoreFIle就是keystore文件的位置,让tomcat启动时找到密钥库。
测试
测试1:只启用HTTPS,不启用HTTP
在server.xml中,为8080端口的Connector加上注释,并且去掉8443端口的Connector的注释。然后启动tomcat。
分别通过http\https访问docs:
http://localhost:8080/docs、https://localhost:8443/docs
结果:只有https可以访问。
测试2:HTTP、HTTPS同时启用
在server.xml中,去掉8080、8443端口的Connector的注释然后启动tomcat。
分别用http\https访问docs:
http://localhost:8080/docs、https://localhost:8443/docs
结果:两者都可正常访问。
redirectPort作用
先看看tomcat官方文档是如何解释的:
If this Connector is supporting non-SSL requests, and a request is received for which a matching <security-constraint> requires SSL transport, Catalina will automatically redirect the request to the port number specified here.
如果当前的connector支持非SSL请求(也就是可以以http方法访问),并且请求的资源与web.xml中<security-constraint>中指定的url匹配时,Catalina就会自动的将请求重写向到redirectport指定端口。redirectport配置是SSL connector的端口。
security-constraint 下配置的url是用于对访问者进行身份认证的配置,怎么又与SSL有关了呢?
带着这个疑问,来看看oracle官方文档中关于web.xml描述:
> web-resource-collection是配置url的。
> auth-constraint是配置身份认证的。
> user-data-constraint是用于定义客户端与server通信时对数据的处理方式。
下面是user-data-constrain下的子元素:
Transport-guarantee 值中涉及到SSL的有2个:integral、confidential:
Integral:要求client与server之间传输的数据不能被篡改。
Confidential:要求client与server之间传输的数据会被转换,不能够直接看到原始内容。
Tomcat:配置SSL的更多相关文章
- 华为云服务器为Tomcat配置SSL
近期由于开发小程序需要在云服务器上配置https访问协议,也遇到了一点小问题,把配置过程记录一下:SSL 证书申请下来之后会有 .jks .crt .pfx .pem为后缀的文件(如何申请SSL证书这 ...
- TOMCAT配置SSL认证为HTTPS协议服务
1 . 问题概述 很多安全性要求较高的系统,都会使用安全套接字层(SSL)进行信息交换, Sun为了解决在Internet上的实现安全信息传输的解决方案.它实现了SSL和TSL(传输层安全)协议 ...
- 单点登录 SSO, 自动登录 , java 加密,ssl原理, Tomcat配置SSL
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 单点登录的英文简称为SSO(single sign on),单点登录功能使得用户只要登录 ...
- Tomcat配置SSL
Tomcat配置SSL 查询网上资料配置如下: <Connector port="8443" protocol="HTTP/1.1" maxThreads ...
- 实战Tomcat配置SSL,使用openssl制作证书
制作证书以及Tomcat配置 搭建openssl环境,下载openssl并设置环境变量方便命令行的使用: 修改openssl配置文件,设置dir目录,如设置dir=e:/temp/openssl_ca ...
- Mac下tomcat配置ssl
最近在搞单点登录CAS,第一步就是需要给tomcat配置证书.但是,第一次配置就遇到了个问题排插了一下午.下面来存一份文档,以备以后遇到. 一.首先准备好环境 java环境:配置好环境变量,找到jdk ...
- Tomcat配置SSL后使用HTTP后跳转到HTTPS
Tomcat配置好SSL后将HTTP请求自动转到HTTPS需要在TOMCAT/conf/web.xml的未尾加入以下配置: <login-config> <!-- Authoriza ...
- Springboot 配置 ssl 实现HTTPS 请求 & Tomcat配置SSL支持https请求
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TLS与 ...
- apache Tomcat配置SSL(https)步骤
Tomcat配置https 1 生成Server端安全证书 要实现通信加密,首先要在本地准备一份符合X.509标准的Server端安全证书.如果有条件的话,可以向权威CA申请一份经过认证的安 ...
- linux apache Tomcat配置SSL(https)步骤
https简介 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果.HTTPS实际上应用了Netscape的安全套接字层(SSL)作为HTTP应用层的 ...
随机推荐
- winform只允许一个应用程序运行 2014-12-08 09:51 31人阅读 评论(0) 收藏
使用互斥体Mutex类型 导入命名空间 using System.Threading; //声明互斥体 Mutex mutex = new Mutex(false, "ThisShouldO ...
- Django 1.10 中文文档------3.2.2 查询操作making queries
3.2.2 查询操作 6.15章节包含所有模型相关的API解释. 后面的内容基于如下的一个博客应用模型: from django.db import models class Blog(models. ...
- Django admin 权威指南(一)
版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...
- 40 个让你的网站更加友好的 jQuery 插件
一个插件的基本功能是执行一个含有元素集合的函数数组.每个方法和jQuery核心组成一个插件,如.fadeOut()或.addClass().一个jQuery插件是一个基本的可以扩充jQuery 原型对 ...
- 8.2 使用Fluent API进行实体映射【Code-First系列】
现在,我们来学习怎么使用Fluent API来配置实体. 一.配置默认的数据表Schema Student实体 using System; using System.Collections.Gener ...
- jQuery点击图片弹出放大特效下载
效果体验:http://hovertree.com/texiao/jqimg/1/ 效果图: 代码如下: <!DOCTYPE html> <html> <head> ...
- nodejs事件模块
nodejs 事件模块 events 只有一个对象 EventEmitter . var EventEmitter = require('events').EventEmitter;var life ...
- tet
施大峰[[昂司法部]]... [[分公司电饭煲]]
- CentOS操作记录
基本操作记录 1.centos已经进到图形界面后怎么打开命令行:ctrl+alt+F3 得到如下命令界面 用用户名和密码登录 切换回图形界面时输入的命令:ctrl+alt+F1 2.重新启动系统:#r ...
- 5、ASP.NET MVC入门到精通——NHibernate代码映射
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...