tomcat真是业界良心啊,文档写的详细无比。

一、https是什么?

简单的说,就是http+SSL/TLS
协议还是http,但是在传输层过程中使用了加密(涉及握手、秘钥分发、加密、解密等过程)。

二、关于SSL支持

英文好的可以直接参考tomcat默认的在线文档。

首先请运行本地的tomcat。

http://localhost:8080/docs/config/http.html#SSL_Support

三、tomcat支持两种SSL Connector类型

1. BIO/NIO connectors

支持由JDK中的工具提供X509证书认证(JAVA语言)

2. APR/Native connectors

支持由OPENSSL提供的证书认证(C语言)

3. 两者的一个比较

四、关于SSL的配置

只需要选择一种配置即可。

1.  jdk证书的配置

<Connector port=""
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="" SSLEnabled="true" scheme="https"
secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="keystore文件.keystore"
keystorePass=""/>

PS:jdk证书的生成需要单独写一篇博客记录。

2. openssl的配置

<Connector port=""
protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="" SSLEnabled="true" scheme="https"
secure="true"
clientAuth="false"
SSLCertificateFile="服务器证书.pem"
SSLCertificateKeyFile="服务器密钥证书.pem"
SSLCertificateChainFile="证书链配置.pem"
sslProtocol="TLS" />

PS:openssl证书的生成需要单独写一篇博客记录。

五、tomcat对jdk的支持

tomcat毕竟是for jee的,对jdk的支持相对简单,网上一搜一大把。

有时间可以单独写一篇博客记录。

六、tomcat对openssl的支持

1. 安装新版本的openssl

去openssl官网下载最新版本的源码包,编译、安装。

中间可能遇到一个小坑,参考文章:http://www.cnblogs.com/yoyotl/p/7424967.html

2. 安装apr库

去apr官网下载最新版本的源码包,编译、安装。

3. 安装native库

这个源码在tomcat的安装目录里。

cd tomcat的安装路径/bin/
tar -zxvf tomcat-native.tar.gz
cd tomcat-native-1.2.-src
cd native
./configue --with-ssl=/usr/local/ssl
(/usr/local/ssl是默认的openssl安装路径)
make && make install

七、tomcat启动报错?

1. 报错

Caused by: org.apache.catalina.LifecycleException: The configured protocol [org.apache.coyote.http11.Http11AprProtocol] requires the APR/native library which is not available

2. 临时解决

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

这是当前shell测试的方法

3. 永久解决

3.1 vi ~/.bash_profile
3.2 在文件后面添加以下两行:
  LD_LIBRARY_PATH=/usr/local/apr/lib
  export LD_LIBRARY_PATH
3.3 配置生效
  source ~/.bash_profile

八、tomcat启动正常

1. 打开浏览器输入https://localhost:8443

如果能够成功地看到tomcat默认主页就意味着这个tomcat支持https了!

2. 想确认一下?

2.1 启动wireshark。

2.2 分别访问http://localhost:8080和https://localhost:8443。

2.3 抓包分析。

http 访问的情况下,能轻松的看到大量的诸如<html>...</html>的明文。

https 访问的情况下,能看到的是肉眼无法识别的密文了(一串看起来毫无规律的字符串)。

tomcat支持https的历程的更多相关文章

  1. tomcat 支持https

    HTTP是平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全.为了保证 这些隐私数据能加密传输,于是网景公司设计了SSL(Se ...

  2. Spring Mvc和Spring Boot配置Tomcat支持Https

    SpringBoot配置支持https spring boot因为是使用内置的tomcat,所以只需要一些简单的配置即可. 1.首先打开命令行工具,比如cmd,输入以下命令 keytool -genk ...

  3. tomcat支持 https

    首先 安装nginx  ,在nginx.conf 中引入 include /app/conf/nginx/vhosts/*.conf; 配置 并在conf/vhosts 目录 中配置virtual.c ...

  4. 【Services】【Web】【tomcat】配置tomcat支持https传输

    1. 基础: 1.1. 描述:内网的tomcat接到外网nginx转发过来的请求之后需要和外网的客户端进行通讯,为了保证通讯内容的安装,使用tomcat使用https协议. 1.2. 链接:http: ...

  5. CentOs下,配置tomcat支持https

    网上此类教程一大堆,本文主要记录步骤和几个注意点. 首先,我们使用jdk的keytool生成证书.命令如下: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: ...

  6. tomcat支持https的server.xml配置

    访问地址:https://127.0.0.1/testWeb/mySevlet?url=123&action=aaa server.xml: <?xml version='1.0' en ...

  7. 配置Tomcat使用https协议(配置SSL协议)

    配置Tomcat使用https协议(配置SSL协议) 2014-01-20 16:38 58915人阅读 评论(3) 收藏 举报 转载地址:http://ln-ydc.iteye.com/blog/1 ...

  8. Tomcat配置https之 JDK SSL证书生成与验证

    关于证书 SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL),安全协议是由Netscape Communication公司设计开发. ...

  9. 【转】配置Tomcat使用https协议(配置SSL协议)

    转载地址:http://ln-ydc.iteye.com/blog/1330674 内容概览: 如果希望 Tomcat 支持 Https,主要的工作是配置 SSL 协议 1.生成安全证书 2.配置to ...

随机推荐

  1. file not found app文件

    昨天svn迁移.然后又一次check out之后编译遇到这个错误. Ld Build/Products/Debug-iphonesimulator/wiseCloudCrmTests.xctest/w ...

  2. php过滤文字中的表情字符和mysql服务端对emoji的支持

    1.过滤emoji表情的原因 在我们的项目开发中,emoji表情是个麻烦的东西,即使我们可以能存储,也不一定能完美显示,因为它的更新速度很快:在iOS以外的平台上,例如PC或者android.如果你需 ...

  3. Inside GDALAllRegister之一: 五大部分

    基本信息 在GDAL的Tutorial中开篇即提到GDALAllRegister函数,它会注册所有已知的驱动,包括动态库自动加载的驱动.最关键是这句话: If for some application ...

  4. 当requestFocus不能立刻起作用时…

    不知道各位有没有遇到过这种情况: 第一次一个apk界面.然后本来想在某处requestFocus()使之获得焦点来显示的,可是直接调用却不行,如图1所看到的. 图1 焦点的位置 出现这种现象是Andr ...

  5. CheeseZH: Octave basic commands

    1.Basic Operations 5+6 3-2 5*8 1/2 2^6 1 == 2 %false ans = 0 1 ~= 2 %true ans = 1 1 && 0 %AN ...

  6. [转]自定义Drawable实现灵动的红鲤鱼动画(上篇)

    此篇中的小鱼动画是模仿国外一个大牛做的flash动画,第一眼就爱上它了,简约灵动又不失美学,于是抽空试着尝试了一下,如下是我用Android实现的效果图:   小鱼儿 由于整个绘制分析过程比较繁琐所以 ...

  7. ViewPage + RadioGroup + Fragment学习

    底部是RadioGroup中RadioButton的切换.上面时ViewPage ,能够滑动,假设你们的需求是不须要滑动的话,那就直接用FrameLayout就能够了. 以下将会用两种方式实现.请大家 ...

  8. Spark1.0.0 生态圈一览

          Spark生态圈,也就是BDAS(伯克利数据分析栈),是伯克利APMLab实验室精心打造的,力图在算法(Algorithms).机器(Machines).人(People)之间通过大规模集 ...

  9. Canvas简述

    HTML Canvas API有两方面优势可以弥补:首先,不需要将所绘制图像中的每个图元当做对象存储,因此执行性能非常好:其次,在其他编程语言现有的优秀二维绘图API的基础上实现Canvas API相 ...

  10. js时间转换,能够把时间转换成yyyymmdd格式或yyyymm格式

    //type为1则转换成yyyymmdd格式,type为2则转换成yyyymm格式 function formatTime(time,type){ var temp_time=new Number(t ...