本教程使用 JDK 6 和 Tomcat 7,其他版本类似。

基本步骤:

  1. 使用 java 创建一个 keystore 文件
  2. 配置 Tomcat 以使用该 keystore 文件
  3. 测试
  4. 配置应用以便使用 SSL ,例如 https://localhost:8443/yourApp

1. 创建 keystore 文件

执行 keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f:\tomcat.keystore" 结果如下:

  D:\Java\jdk1.8.0_101\bin>keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f:\tomcat.keystore"
  输入密钥库口令:tomcat
  再次输入新口令:tomcat
  您的名字与姓氏是什么?
    [Unknown]: zixianwu
  您的组织单位名称是什么?
    [Unknown]: taishan
  您的组织名称是什么?
    [Unknown]: fangda
  您所在的城市或区域名称是什么?
    [Unknown]: sz
  您所在的省/市/自治区名称是什么?
    [Unknown]: gd
  该单位的双字母国家/地区代码是什么?
    [Unknown]: zh
  CN=zixianwu, OU=taishan, O=fangda, L=sz, ST=gd, C=zh是否正确?
    [否]: y

  输入 <tomcat> 的密钥口令
    (如果和密钥库口令相同, 按回车):

这样就在用户的 F盘 下创建了一个 tomcat.keystore 文件

2. 配置 Tomcat 以使用 keystore 文件

打开 server.xml 找到下面被注释的这段

  <!--

  <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
    maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS" />
  -->

干掉注释,并将内容改为

  <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxThreads="25" SSLEnabled="true" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS"
    acceptCount="100" disableUploadTimeout="true" enableLookups="false"
    keystoreFile="F:/tomcat.keystore"
    keystorePass="tomcat" />

3. 测试

启动 Tomcat 并访问 https://localhost:8443. 你将看到 Tomcat 默认的首页。

需要注意的是,如果你访问默认的 8080 端口,还是有效的。

4. 配置应用使用 SSL

打开应用的 web.xml 文件,增加配置如下:

  <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 的 SSL 配置的更多相关文章

  1. Tomcat服务器配置https协议(Tomcat HTTPS/SSL 配置)

    通常商用服务器使用https协议需要申请SSL证书,证书都是收费的,价格有贵的有便宜的.它们的区别是发行证书的机构不同,贵的证书机构更权威,证书被浏览器否决的几率更小. 非商业版本可以通过keytoo ...

  2. 如何利用tomcat和cas实现单点登录(1):配置tomcat的ssl和部署cas

    如何利用tomcat和cas实现单点登录,借鉴了网上的很多教程,主要分为以下几个步骤: 一:下载好cas,tomcat之后,首先配置tomcat: 用鼠标右键点击"计算机"→选择& ...

  3. 使用HttpClient发送HTTPS请求以及配置Tomcat支持SSL

    这里使用的是HttpComponents-Client-4.1.2 package com.jadyer.util; import java.io.File; import java.io.FileI ...

  4. Tomcat 7.0配置SSL的问题及解决办法

    http://dong-shuai22-126-com.iteye.com/blog/1830209   以前一直在用Tomcat 6.0.29版本,今下载了apache-tomcat-7.0.33- ...

  5. SSL 通信原理及Tomcat SSL 配置

    SSL 通信原理及Tomcat SSL 双向配置 目录1 参考资料 .................................................................. ...

  6. 【CAS单点登录视频教程】 第03集 -- 配置 tomcat的 ssl

    目录 ----------------------------------------- [CAS单点登录视频教程] 第06集[完] -- Cas认证 学习 票据认证FormsAuthenticati ...

  7. Tomcat SSL配置及Tomcat CA证书安装

    Tomcat既可以作为独立的Servlet容器,也可以作为其他HTTP服务器附加的Servlet容器.如果Tomcat在非独立模式下工作, 通常不必配置SSL,由它从属的HTTP服务器来实现和客户的S ...

  8. Tomcat SSL配置 Connector attribute SSLCertificateFile must be defined when using SSL with APR解决

    原文地址:http://blog.csdn.net/kissliux/article/details/17392003 Tomcat 6版本配置SSL过程有两步: 1.用JDK自带的keytool.e ...

  9. Tomcat (1) —— Mac下配置Tomcat Https/SSL

    Tomcat (1) -- Mac下配置Tomcat Https/SSL tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 参考来源: SSL/TLS Config ...

随机推荐

  1. Hibernate 注解时 hibernate.hbm.xml的配置方法 以及与SSH整合里的配置方式

    ①纯Hibernate开发: 当你在Bean中写入注解后,需要告诉hibernate哪些类使用了注解. 方法是在hibernate.hbm.xml文件中配置 <!DOCTYPE hibernat ...

  2. 李洪强iOS开发Swift篇—03_字符串和数据类型

    李洪强iOS开发Swift篇—03_字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容  let website = "http:// ...

  3. 控件构造函数需要的AOwner是TComponent,而不是Parent

    普通控件都只有一个构造函数,但是这个构造函数却强迫指定AOwner,也就是说,VCL希望将所有控件(至少是所有可视化控件)全部置于它的管理之下.至于到底显示不显示,那是另一个层次的问题.这个问题其实挺 ...

  4. ruby hashtable散列表

    dict={'cat'=>'abc','dog'=>'def'}puts dict.size dict.keys返回所有的key, values返回所有的value. 删除: dict.d ...

  5. mysql 区间锁 对于没有索引 非唯一索引 唯一索引 各种情况

    The locks are normally next-key locks that also block inserts into the "gap" immediately b ...

  6. unicode下各种类型转换CString、string

    把最近用到的各种unicode下类型转换总结了一下: 1.string转CString string a=”abc”; CString str=CString(a.c_str()); 或str.for ...

  7. bzoj1034

    贪心 尽可能让最强的赢,最弱的赢,都不行则最弱打最强 感性的想,我肯定要尽可能的赢,而且赢的要对等 实在不能赢就拿最小的拼,所谓的田忌赛马策略 由于总分一定,己方最差即己方最好时对方的分数 ..] o ...

  8. 全面理解Unity加载和内存管理

     全面理解Unity加载和内存管理http://game.ceeger.com/forum/read.php?tid=4394&fid=2&uid=6507 1.用简单的“for”循环 ...

  9. 传输层之UDP

    1.UDP的定义 跟tcp一样,我们把她定义为: 无连接的,不可靠的,用户数据报协议. 从中我们看到了:无连接和不可靠,这是它的缺点也是它的优点,因为他选择了性能,舍弃了部分安全,节约资源,速度快. ...

  10. strcpy,memcpy,内存块重叠

    前段时间准备面试,看了一些库函数的实现,在看到memcpy时,发现有处理source和destination所指内存有重叠的情况,而strcpy没有,特别模仿库函数写了这个函数,并进行了测试.以下是具 ...