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/docshttps://localhost:8443/docs

结果:只有https可以访问。

测试2:HTTP、HTTPS同时启用

在server.xml中,去掉8080、8443端口的Connector的注释然后启动tomcat。

分别用http\https访问docs:

http://localhost:8080/docshttps://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的更多相关文章

  1. 华为云服务器为Tomcat配置SSL

    近期由于开发小程序需要在云服务器上配置https访问协议,也遇到了一点小问题,把配置过程记录一下:SSL 证书申请下来之后会有 .jks .crt .pfx .pem为后缀的文件(如何申请SSL证书这 ...

  2. TOMCAT配置SSL认证为HTTPS协议服务

     1 . 问题概述 很多安全性要求较高的系统,都会使用安全套接字层(SSL)进行信息交换, Sun为了解决在Internet上的实现安全信息传输的解决方案.它实现了SSL和TSL(传输层安全)协议 ...

  3. 单点登录 SSO, 自动登录 , java 加密,ssl原理, Tomcat配置SSL

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 单点登录的英文简称为SSO(single sign on),单点登录功能使得用户只要登录 ...

  4. Tomcat配置SSL

    Tomcat配置SSL 查询网上资料配置如下: <Connector port="8443" protocol="HTTP/1.1" maxThreads ...

  5. 实战Tomcat配置SSL,使用openssl制作证书

    制作证书以及Tomcat配置 搭建openssl环境,下载openssl并设置环境变量方便命令行的使用: 修改openssl配置文件,设置dir目录,如设置dir=e:/temp/openssl_ca ...

  6. Mac下tomcat配置ssl

    最近在搞单点登录CAS,第一步就是需要给tomcat配置证书.但是,第一次配置就遇到了个问题排插了一下午.下面来存一份文档,以备以后遇到. 一.首先准备好环境 java环境:配置好环境变量,找到jdk ...

  7. Tomcat配置SSL后使用HTTP后跳转到HTTPS

    Tomcat配置好SSL后将HTTP请求自动转到HTTPS需要在TOMCAT/conf/web.xml的未尾加入以下配置: <login-config> <!-- Authoriza ...

  8. Springboot 配置 ssl 实现HTTPS 请求 & Tomcat配置SSL支持https请求

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TLS与 ...

  9. apache Tomcat配置SSL(https)步骤

    Tomcat配置https 1      生成Server端安全证书 要实现通信加密,首先要在本地准备一份符合X.509标准的Server端安全证书.如果有条件的话,可以向权威CA申请一份经过认证的安 ...

  10. linux apache Tomcat配置SSL(https)步骤

    https简介 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果.HTTPS实际上应用了Netscape的安全套接字层(SSL)作为HTTP应用层的 ...

随机推荐

  1. winform只允许一个应用程序运行 2014-12-08 09:51 31人阅读 评论(0) 收藏

    使用互斥体Mutex类型 导入命名空间 using System.Threading; //声明互斥体 Mutex mutex = new Mutex(false, "ThisShouldO ...

  2. Django 1.10 中文文档------3.2.2 查询操作making queries

    3.2.2 查询操作 6.15章节包含所有模型相关的API解释. 后面的内容基于如下的一个博客应用模型: from django.db import models class Blog(models. ...

  3. Django admin 权威指南(一)

    版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...

  4. 40 个让你的网站更加友好的 jQuery 插件

    一个插件的基本功能是执行一个含有元素集合的函数数组.每个方法和jQuery核心组成一个插件,如.fadeOut()或.addClass().一个jQuery插件是一个基本的可以扩充jQuery 原型对 ...

  5. 8.2 使用Fluent API进行实体映射【Code-First系列】

    现在,我们来学习怎么使用Fluent API来配置实体. 一.配置默认的数据表Schema Student实体 using System; using System.Collections.Gener ...

  6. jQuery点击图片弹出放大特效下载

    效果体验:http://hovertree.com/texiao/jqimg/1/ 效果图: 代码如下: <!DOCTYPE html> <html> <head> ...

  7. nodejs事件模块

    nodejs 事件模块 events 只有一个对象 EventEmitter . var EventEmitter = require('events').EventEmitter;var life ...

  8. tet

    施大峰[[昂司法部]]... [[分公司电饭煲]]

  9. CentOS操作记录

    基本操作记录 1.centos已经进到图形界面后怎么打开命令行:ctrl+alt+F3 得到如下命令界面 用用户名和密码登录 切换回图形界面时输入的命令:ctrl+alt+F1 2.重新启动系统:#r ...

  10. 5、ASP.NET MVC入门到精通——NHibernate代码映射

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...