JDK8+Tomcat8配置https
2016-06-20 18:33
218 查看
今天在学习Spring Security的时候,Spring Security有一个功能是能够将一部分URL强制使用HTTPS。因此,就需要让我们的Tomcat能够响应HTTPS。现在网上的很多解决方法都是原来版本的软件来生成密钥和开启Tomcat HTTPS功能。到了JDK8和Tomcat8就有一些不适用了。原因是jdk所提供的keytool 工具有些变化。下边就简要介绍一下我所用的方法。
首先,确保java的目录在系统的环境变量中,不在的话,可以直接到java目录的bin文件夹下操作。
生成密钥对的命令是keytool -genkeypair,在原先的有的jdk所提供的命令是keytool -genkey,但我感觉jdk8的这种表达更为明确一些。
keytool -genkeypair -alias tomcat -keyalg RSA -keypass password -storepass password -keystore path_to_keystore/name_for_keystore.keystore
生成密钥对的界面就和下边一样
Tomcat8中给出了一个默认的Connector,我们只需要把它的注释去掉就可以了。样子就像下边的图一样。
port是端口,protocol是协议,原来低版本的Tomcat版本有可能是”HTTP/1.1”,但是在8这个版本中是一个代表了协议的类。无所谓了。你的是哪个版本就用哪种表述,关键看原来的server.xml所给的例子。
keystoreFile是我们刚刚生成的那个keystore文件,keystorePass就是我们刚才在生成keystore文件的时候所指定的storepass或keypass(它们是一样的,原因前边说啦)。你得注意keystoreFile中的F是大写的,keystorePass中的P也是大写的,写错了有可能会出问题的。
OK,现在重启你的tomcat,输入地址,把端口改成8443,应该就可以访问了。
生成密钥对
我比较喜欢密钥对这个名字,因为它非常明确了HTTPS在传输过程中需要的两个钥匙(公钥和私钥)。如果不太了解HTTPS的,可以要到搜索引擎去搜索一下HTTPS的原理。首先,确保java的目录在系统的环境变量中,不在的话,可以直接到java目录的bin文件夹下操作。
生成密钥对的命令是keytool -genkeypair,在原先的有的jdk所提供的命令是keytool -genkey,但我感觉jdk8的这种表达更为明确一些。
keytool -genkeypair -alias tomcat -keyalg RSA -keypass password -storepass password -keystore path_to_keystore/name_for_keystore.keystore
-alias 表示证书的别名,一个keystore文件中可以存放多个alias。 -keyalg RSA 表示密钥算法的名称为RSA算法 -keypass password表示密钥的口令是password -storepass password表示密钥库(生成的keystore文件)的密钥是keypass。 注意:keypass和storepass理论上是可以不同的,但是我们生成的密钥是要给tomcat用的,tomcat这家伙好像没有提供提取私钥的密码(就是上边那个keypass)配置,因此我们只好将两个密码设置成一样的。 -keystore是生成的或者已有的keystore文件的位置,如果不提供的话,keytool工具会把它放在用户目录下,还起了个名字叫.keystore。
生成密钥对的界面就和下边一样
配置Tomcat
好了,现在去配置Tomcat。在Tomcat安装目录的conf文件夹下有个server.xml文件,找到我们需要打开HTTPS功能的Service,添加一个Connector。关于Tomcat中的这些概念,不懂的可以找个搜索引擎搜一下(你就搜Tomcat Server.xml)。Tomcat8中给出了一个默认的Connector,我们只需要把它的注释去掉就可以了。样子就像下边的图一样。
port是端口,protocol是协议,原来低版本的Tomcat版本有可能是”HTTP/1.1”,但是在8这个版本中是一个代表了协议的类。无所谓了。你的是哪个版本就用哪种表述,关键看原来的server.xml所给的例子。
keystoreFile是我们刚刚生成的那个keystore文件,keystorePass就是我们刚才在生成keystore文件的时候所指定的storepass或keypass(它们是一样的,原因前边说啦)。你得注意keystoreFile中的F是大写的,keystorePass中的P也是大写的,写错了有可能会出问题的。
OK,现在重启你的tomcat,输入地址,把端口改成8443,应该就可以访问了。
相关文章推荐
- java-模拟tomcat服务器
- i-jetty环境搭配与编译
- 实现单Tomcat多Server配置
- 生产环境下的Tomcat配置
- Linux部署Tomcat服务器
- JDK动态代理VS CgLib
- jenkins------结合maven将svn项目自动部署到tomcat下
- 如何搞定tomcat这只喵~
- Ubuntu 安装 JDK 问题
- tomcat在opensuse下开机自启失败的原因分析及解决方法
- jsp项目中更改tomcat的默认index.jsp访问路径的方法
- Tomcat 多端口 多应用
- tomcat 5.0 + apache 2.0 完全安装步骤详解
- Tomcat安全设置 win2003 下tomcat权限限制
- Jsp和PHP共用80端口整合Apache和Tomcat(访问时无需加端口号)
- Tomcat服务器 安全设置第1/3页
- tomcat 6.0.20在一个机器上安装多个服务的方法
- Tomcat 5.5 数据库连接池配置
- Tomcat内存溢出分析及解决方法