详见: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. Given two binary string, return their sum (also a binary string)

    主要思路:将二进制转化为十进制,然后进行十进制加法,最后再将加法所得的结果转化为二进制 public class BinarySum2 { public static void main(String ...

  2. Spring+SpringMVC+MyBatis+easyUI整合基础篇(四)代码简化

    点这里看实际效果! 账密:admin 123456   敲了一天的代码,有些烦,感觉前一篇文章写的太笼统了,哈哈哈.   本来呢,也就是刚开始写,所以很多细节都想不到,源码也放上来了,自己动动手应该也 ...

  3. swift 获取文件大小

    //获取文件大小 func getSize(url: URL)->UInt64 { var fileSize : UInt64 = 0 do { let attr = try FileManag ...

  4. Go的类型断言解析

    经常地我们对一个接口值的动态类型是不确定的,如方法的形参为接口类型时,此时就需要检验它是否符合我们需要的类型.类型断言是一个使用在接口值上的操作.断言类型的语法:x.(T),这里x表示一个接口的类型, ...

  5. ssh自学笔记

    Ssh自学笔记 Ssh简介 传统的网络服务程序,如:ftp.pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务 ...

  6. 【机器学习笔记之六】Bagging 简述

    本文结构: 基本流程 有放回抽样的好处 Bagging 特点 sklearn 中 Bagging 使用 Bagging 和 Boosting 的区别 bagging:bootstrap aggrega ...

  7. Markdown学习笔记(一) 基本的Markdown标签

    Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此有很多人用它写 ...

  8. iOS 10 UserNotification框架解析 – 本地通知

    iOS 10以前的通知比较杂乱,把本地通知和远程通知分开了,诞生了许多功能类似的API,很容易让初学者犯迷糊.而iOS 10的通知把API做了统一,利用独立的UserNotifications.fra ...

  9. Mac配置eclipse+pydev+Python遇到的问题

    最近在研究Python,作为一名新手在配置环境的时候遇到各种问题:高手可略过~ 1.eclipse官网上下载最新的OS版本,并成功安装eclipse 2.安装JDK,eclipse这些都是要安装JDK ...

  10. Spring(三)之自动装配、表达式

    自动装配 自动装配(autowire)协作者 Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系.因此,如果可能的话,可以自动让Spring通过检查BeanFact ...