详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt385

最简单的方法,直接用java里的keytool工具生成一个keystore文件,然后直接用这个文件启用https就可以了。

方法如下:

命令行执行%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA

执行过程中会询问你一些信息,比如国家代码,省市等,其中需要填写两个密码,一次在开头,一次在最后,请保持两个密码相同。比如,我将密码都设成s3cret。

如果不同,启动会报错,大概是下面这样的

java.io.IOException: Cannot recover key

执行完成后会生成一个.keystore文件,将它复制到tomcat的bin目录下(并不一定,放哪里都可以)

打开conf目录下的server.xml文件,找到以下这一段

它被注释掉了,将注释去掉,并将这一段改成以下

maxThreads="150" scheme="https" secure="true"

keystoreFile="bin/.keystore" keystorePass=" s3cret"

clientAuth="false" sslProtocol="TLS" />

之后启动tomcat就可以了,通过https方式访问8443端口,就能看到效果。如果用http访问之前的端口,那么还是普通的未加密连接。

到这里问题来了,我的目的是启用https,但现在http还能访问,那么就可以绕开https。https也就起不了什么作用了。因此要强制访问https。

打开你的web应用的web.xml文件,在最后加上这样一段

Protected Context

/*

CONFIDENTIAL

重启tomcat,现在你放问原来的地址,假设是http://localhost:8080/mywebapp/,可以看到,连接被重定向到了https的连接

https://localhost:8443/mywebapp/。这样,我们的目的达到了。

但似乎还有点小问题,keystorePass="s3cret",这个密码直接被明码方式卸载server.xml里。总觉得有还是有点不爽。

那么还有一种稍微复杂点的方式,我们使用openssl。

首先,需要下载openssl,为了方便,可以下载一个绿色版,http://www.itrus.com.cn/verisignchina/Service/soft/autocsr.rar

加压后除了openssl.exe以外,还有一个bat文件,这个可以帮助我们快速创建证书申请文件。

运行autocsr.bat,按照提示输入信息,之后按任意键确认。你会得到两个文件,一个server.key,这是私钥文件,还有一个名为certreq.csr的证书请求文件。

如果你要向证书颁发机构申请正式的安全证书,那么就把这个certreq.csr文件发给他们就行了。他们会给你发来两个cer文件,一个是服务器证书,一个是根证书

如果你只是要使用https,那么证书自己签署就可以了。

在命令行下进入刚才解压的目录,找到openssl.exe所在的目录,执行以下命令

openssl x509 -req -in certreq.csr -out cert.cer -signkey server.key -days 3650

现在你将得到一个名为cert.cer的证书文件。

修改server.xml将

maxThreads="150" scheme="https" secure="true"

keystoreFile="bin/.keystore" keystorePass=" s3cret"

clientAuth="false" sslProtocol="TLS" />

修改为以下内容(假设cert.cer和server.key文件都放在tomcat的conf目录下)

maxThreads="150" scheme="https" secure="true"

SSLCertificateFile="conf/cert.cer"

SSLCertificateKeyFile="conf/server.key"

sslProtocol="TLS" />

PS.如果真的向证书颁发机构申请到了正式的安全证书,那么配置还有点不同,如下

maxThreads="150" scheme="https" secure="true"

SSLCertificateFile="conf/server.cer"

SSLCertificateKeyFile="conf/server.key"

SSLCertificateChainFile="conf/intermediate.cer"

sslProtocol="TLS" />

因为证书颁发机构会给两个整数,一个是签署后的服务器证书,还有一个中级CA证书,所以要多一行配置。
可能证书颁发机构只会给你服务器证书也就是server.cer,  中级的CA证书即 intermediate.cer 需要到
证书颁发机构提供的网站中去下载,具体的操作会为证书颁发机构给发的邮箱中会有相关的提示

好了,到这里都配置完了,重启tomcat,就可以看到效果。不过,看到的通常会是一个exception,大概是说APR not available

如果遇到这个异常,说明你的tomcat没有安装apr支持
apr安装详见:http://www.blogjava.net/yongboy/archive/2009/08/31/293343.html

之后启动tomcat,问题应该解决了,看起来效果和第一种方式没什么不同。

在tomcat7中启用HTTPS的详细配置的更多相关文章

  1. tomcat7下对HTTPS的部署配置

    1.申请CA证书,可以在腾讯云或者阿里云申请到免费的CA,不过前提是,你要有太服务器和域名,并且解析过域名. 2.下载申请到的CA证书到本地,在tomcat7上进行相关配置. 3.Tomcat 证书部 ...

  2. 在服务器上启用HTTPS的详细教程

    现在,你应该能在访问https://konklone.com的时候,在地址栏里看到一个漂亮的小绿锁了,因为我把这个网站换成了HTTPS协议.一分钱没花就搞定了. 为什么要使用HTTPS协议: 虽然SS ...

  3. JBoss集群中启用HTTPS协议

    Generate server certificate Note: If you already have certificate created then this section can be i ...

  4. loadrunner中对https证书的配置

    1.准备好网站的证书,一般证书是cer格式: 2.因为loadrunner只支持pem格式的证书,所以要将证书转换格式,利用openssl工具:(或者直接让开发提供pem格式的证书)   3.得到pe ...

  5. Nginx中location模块的详细配置(含示例)

    题记 此前在配置Nginx location模块的时候玩出了一些bug,折腾了一段时间.后来网上也查阅了相关的资料,看着也比较混乱.周末有空想着好好整理一下location模块的配置,结合自己的亲手实 ...

  6. Confluence 6 代理和 HTTPS 详细配置指南链接

    详细配置指南 更多有关连接器示例,我们提供了一些按步骤配置的指南来帮助你启用 HTTPS 并正确配置你的代理. HTTPS: Running Confluence Over SSL or HTTPS  ...

  7. gitlab 启用HTTPS

    NGINX设置 启用HTTPS 警告 Nginx配置会告诉浏览器和客户端,只需在未来24个月通过安全连接与您的GitLab实例进行通信.通过启用HTTPS,您需要至少在24个月内为您的实例提供安全连接 ...

  8. Tomcat启用HTTPS协议配置过程

    Article1较为简洁,Article2较为详细,测试可行. Article1 概念简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问 ...

  9. 【Azure Application Insights】在Azure Function中启用Application Insights后,如何配置不输出某些日志到AI 的Trace中

    问题描述 基于.NET Core的Function App如果配置了Application Insights之后,每有一个函数被执行,则在Application Insights中的Logs中的tra ...

随机推荐

  1. Docker实践 - 安装Docker并在容器里运行tomcat

    安装Docker yum install docker 本文使用的系统是centos7,ubuntu使用以下命令 sudo apt-get update sudo apt-get install do ...

  2. Javascript数组(1)--基本属性及方法

    数组Array是Javascript语言中非常重要的两种引用类型数据之一,另外一种为对象Object.Array的数据模型可分为两种进行存储:堆栈结构.队列结构. 昨天,确切说是前天了,去和大学同学见 ...

  3. ACM退役帖 -- 未真正开始也不会结束

    2017.5.21,20岁的最后一天,昨天,随着2017年安徽省大学生程序设计竞赛落下帷幕,我也正式退役了ACM了.连ACM区域赛也没去过的我,也许是不够格提出退役ACM这句话的,但对ACM的热爱,虽 ...

  4. 同步读取各平台StreamingAssets文件

    //Path为StreamingAssets文件后面的路径 public AssetBundle GetstreamingAssets(string Path) { #if UNITY_EDITOR ...

  5. linux 编译安装详解

    相信大家大多都听过linux 的编译安装,但它到底是怎么把源代码变为自己电脑里可以应用的软件哪?今天,小编就以httpd 为例详细讲解一下. 什么是编译安装--编译:将源代码变为机器可执行的代码文件. ...

  6. Vue过渡效果之CSS过渡

    前面的话 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.本文将从CSS过渡transition.CSS动画animation及配合使用第三方CSS动画库(如animate. ...

  7. 切换Ubuntu系统python默认版本的方法

    另附切换系统python默认版本的方法: 先使用命令: update-alternatives --list python 查看python命令的各种可能结果, 例如我的结果: /usr/bin/py ...

  8. 设计模式之Iterator模式

    STL里的iterator就是应用了iterator模式. 一.什么是迭代模式 Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator按顺 ...

  9. 关于HttpSession

    HttpSession  使用Cookie有一个非常大的局限,就是如果Cookie很多,则无形的增加了客户端与服务端的数据传输量.而且由于浏览器对Cookie数量的限制,注定我们不能再Cookie中保 ...

  10. Maven详解(一)------ Maven概述

    1.引言 你能搜到这个教程,说明你对 Maven 感兴趣,但是又不是太理解.那么接下来这个系列的教程将会详细讲解 Maven 的用法,相信你看完之后,一定能对 Maven 的理解更进一步! 2.常规项 ...