参考文献:

http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

http://blog.sina.com.cn/s/blog_682b5aa1010113uu.html(中文,比较实用)

https://help.ubuntu.com/community/TomcatSSL

http://blog.csdn.net/fjssharpsword/article/details/6851969(服务器和客户端证书)

背景

本文以ubuntu环境为例进行说明,具体环境如下

OS:ubuntu-server_12.04

TOMCAT_HOME:/usr/local/tomcat7,安装方法参考:windows和linux 下将tomcat注册为服务

JAVA_HOME:/usr/lib/jvm/jdk1.7.0_45,安装方法参考:ubuntu下安装JDK并配置java环境

总体思路

服务器端

1.用JDK自带的Keytool生成keystore文件
  1)打开终端控制台,转向tomcat主目录,执行生成keystore文件命令,这条命令的作用是在tomcat主目录下生成server.keystore文件,这里设定的server.keystore的密码是Envisi0n,这个密码在后面会用到。

  1. keytool -genkey -alias tomcat -keyalg RSA -keypass Envisi0n -storepass Envisi0n -keystore server.keystore -validity

2)根据keystore文件生成证书,这条命令的作用是在tomcat主目录下生成server.cer证书文件。

  1. keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass Envisi0n

 客户端如果要访问tomcat的ssl8843端口,需要导入这个证书。当然生成证书的方法还有更加简单的,就是在客户端使用浏览器下载证书,可以是firfox,也可以是chrome,chrome证书导出方式如下:

3)%TOMCAT_HOME%\conf\server.xml,找到一下这段内容,将这段的注释取消掉

  1. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />

并添加keystoreFile和keystorePass,如下图所示:

  1. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
  2. maxThreads="150" scheme="https" secure="true"
  3. clientAuth="false" sslProtocol="TLS"
  4. keystoreFile="/usr/local/tomcat7/server.keystore"
  5. keystorePass="Envisi0n" />

客户端导入证书

拿到上面第二步获得的证书以后,将此证书导入到JDK的cacerts库当中,执行如下命令

  1. keytool -importcert -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -file d:/keystore/cas.cer -alias caskey

JDK的cacerts这个keystore的默认密码是changeit。

然后配置tomcat的connector,配置如下

  1. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
  2. maxThreads="150" scheme="https" secure="true"
  3. clientAuth="false" sslProtocol="TLS"
  4. keystoreFile="%JAVA_HOME%/jre/lib/security/cacerts"
  5. keystorePass="changeit" />

应用场景

可以将上述的服务器端看作是CAS服务器,而客户端怎是web应用。web应用要通过CAS服务器实现单点登录。

tomcat开启SSL8443端口的方法的更多相关文章

  1. Linux配置防火墙 开启80端口的方法

    命令行输入: vi /etc/sysconfig/iptables 将 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT ...

  2. linux下开启某个端口的方法:可用于SQL

  3. 使用AdvancedInstaller打包web工程设置tomcat端口的方法

    原文:使用AdvancedInstaller打包web工程设置tomcat端口的方法 1.首先,要把你要打包的tomcat下的server.xml文件删掉,因为tomcat自带的serv ...

  4. tomcat 对 vue的history默认支持 tomcat 开启步骤 1.build文件放入webapps目录 2.进入conf目录修改server.xml端口号改成8088 3.进入bin目录运行startup.bat 4.浏览器 localhost:8088/workName 访问即可

    tomcat 对 vue的history默认支持 tomcat 开启步骤 1.build文件放入webapps目录 2.进入conf目录修改server.xml端口号改成8088 3.进入bin目录运 ...

  5. apache与tomcat负载集群集成方法配置

    apache与tomcat负载集群集成方法有3种jk.jk_proxy.http_proxy apache:httpd-2.2.17-win32-x86-no_ssl.msi tomcat:apach ...

  6. Tomcat开启JMX监控

    搭建模拟环境: 操作系统:centos7内存:1Gjdk:1.8.0_131tomcat:8.0.48 环境准备我们这里就不直接演示了,直接配置tomcat的jmx 1.进入到tomcat的bin目录 ...

  7. eclipse配置Tomcat和Tomcat出现无效端口解决办法

    一.eclipse配置Tomcat 1. 按图选择window-preferences 2在server处选择runtime environment . 3.点击右侧add,选择自己的Tomcat版本 ...

  8. 怎么解决tomcat占用8080端口问题

        怎么解决tomcat占用8080端口问题 相信很多朋友都遇到过这样的问题吧,tomcat死机了,重启eclipse之后,发现 Several ports (8080, 8009) requir ...

  9. 解决宿主机不能访问虚拟机CentOS中的站点 | 更新CentOS防火墙设置开启80端口访问

    前阵子在虚拟机上装好了centos6.0,并配好了nginx+php+mysql,但是本机就是无法访问.一直就没去折腾了. 具体情况如下 1.本机能ping通虚拟机 2.虚拟机也能ping通本机 3. ...

随机推荐

  1. FPGA学习笔记. DDS

    DDS原理 直接数字式频率合成器(Direct Digital Synthesizer) 频率计算公式 Fout = FW * Fclk / 2^N Fout 输出频率, Fw 频率控制字, N 位数 ...

  2. 关于v4包的Fragment过渡动画的事件监听无响应问题解决

    项目中部分功能模块采用了单Activity+多Fragment模式,当Fragment切换时,需要在过渡动画执行完后做一些操作,通常就是在自己封装的FragmentBase中重写onCreateAni ...

  3. eclipse安装阿里巴巴java开发规范插件

    阿里巴巴java开发规范插件 作为JAVA开发人员,始终没有一个明确的规范,何为好代码,何为坏代码,造成不同人的代码风格不同,接手别人代码后改造起来相当困难.前不久,阿里巴巴发布了<阿里巴巴Ja ...

  4. poj2447

    题意:两个素数P,Q.N=P*Q; T=(P-1)*(Q-1); (E*D)mod T = 1; (0<=D<T).E与T互质,公钥是{E,N},私钥是{D,N}.原始信息M的加密过程为C ...

  5. poj1273

    赤裸裸的最大流 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstr ...

  6. 【最简单的方法】js判断字符串是否为JSON格式(20180115更新)

    前言 针对 “js判断字符串是否为JSON格式” 这个问题,在网上查了许多资料,都没找到自己想要的答案. 但是看到这个帖子<js判断字符串是否为JSON格式>后,突然灵光一闪,想到一种很简 ...

  7. 在IIS下部署SSL证书实现HTTPS

    在IIS下部署SSL证书实现HTTPS   HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版.谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为“不安全” ...

  8. TcxGrid标题头 字体加粗

  9. Java中类与类的关系

    在java中类和类的关系大致分三种:泛化.关联.依赖. 1. 泛化(Generalization) "XX是一个XX"关系(is a),通常使用的关键词为 extends.impl ...

  10. Python学习笔记:算法的重要性

    今日看了一个基础的教程<8分钟学会一个算法>,偶然间看到一个很简单的例子,仅当记录一下. 题目:已知a+b+c=1000,且a^2+b^2=c^2,求a,b,c的所有自然数解? #### ...