配置Tomcat使用https协议(单向认证)

简介:

   超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

   为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

    HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),用于安全的传输HTTP数据。

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

因此,今天来聊一聊关于tomcat(8.5.9)的HTTPS配置步骤

安装JDK环境


安装JDK8

1
2
3
4
5
tar  zxf jdk-8u111-linux-x64. tar .gz -C  /usr/local/
export  JAVA_HOME= /usr/local/jdk1 .8.0_111
export  CLASSPATH=.:$JAVA_HOME /lib/dt .jar:$JAVA_HOME /lib/tools .jar
export  PATH=$JAVA_HOME /bin :$PATH
source  /etc/profile


检查JAVA环境是否安装完成

1
2
3
4
[root@centos ~] # java -version
java version  "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

安装Tomcat-8.5.9


安装Tomcat

1
2
3
tar  zxf apache-tomcat-8.5.9. tar .gz -C  /usr/local/
export  CATALINA_HOME= /usr/local/apache-tomcat-8 .5.9
source  /etc/profile


启动Tomcat服务

1
2
3
4
5
6
7
8
9
10
11
[root@centos ~] #/usr/local/apache-tomcat-8.5.9/bin/startup.sh
Using CATALINA_BASE:  /usr/local/apache-tomcat-8 .5.9
Using CATALINA_HOME:  /usr/local/apache-tomcat-8 .5.9
Using CATALINA_TMPDIR:  /usr/local/apache-tomcat-8 .5.9 /temp
Using JRE_HOME:  /usr/local/jdk1 .8.0_111
Using CLASSPATH:  /usr/local/apache-tomcat-8 .5.9 /bin/bootstrap .jar: /usr/local/apache-tomcat-8 .5.9 /bin/tomcat-juli .jar
Tomcat started.
[root@centos ~] # netstat -lntup|grep java
tcp 0 0 ::127.0.0.1:8005 :::* LISTEN 4681 /java      
tcp 0  0 :::8009  :::*  LISTEN 3983 /java      
tcp 0  0 :::8080  :::*  LISTEN 4681 /java


浏览器通过HTTP访问

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

利用JAVA自带工具keytool生成证书


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@mingongge ~] # keytool -genkey -alias tomcat8 -keyalg RSA -keystore /usr/local/keystore
Enter keystore password:  
Re-enter new password:  输入密码,不显示
What is your first and last name?
   [Unknown]: mingongge 输入你的名字
What is the name of your organizational unit?
   [Unknown]: mingongge.com 输入组织单位名称
What is the name of your organization?
   [Unknown]: mingongge.com 输入组织名称
What is the name of your City or Locality?
   [Unknown]: hefei 输入你的城市
What is the name of your State or Province?
   [Unknown]: anhui 输入你的省
What is the two-letter country code  for  this unit?
   [Unknown]: CN  输入国家
Is CN=mingongge, OU=mingongge.com, O=mingogge.com, L=hefei, ST=anhui, C=CN correct?
   [no]:  y 确认配置
Enter key password  for  <tomcat8>
   (RETURN  if  same as keystore password):


  如果与前面相同直接回车,也可自定义

keytool命令如下: 

-genkey  

创建文件,文件中包含用户的公钥、私钥和证书 

-alias   产生别名

-keystore  指定密钥库的名称

-keyalg   指定密钥的算法    

-validity 指定创建的证书有效期多少天 

-keysize   指定密钥长度 

-storepass 指定密钥库的密码 

-keypass   指定别名条目的密码 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

配置Tomcat


修改Tomcat配置文件

1
2
3
4
5
6
7
8
9
10
11
cd  /usr/local/apache-tomcat-8 .5.9 /conf/
cp  server.xml  server.xml.$( date  +%F)
vim server.xml
<Connector port= "8443"  protocol= "org.apache.coyote.http11.Http11NioProtocol"
   maxThreads= "150"  SSLEnabled= "true" >
<SSLHostConfig>
  <Certificate certificateKeystoreFile= "/usr/local/kestore" 
    certificateKeystorePassword= "123456"
    type = "RSA"  />
   < /SSLHostConfig >
< /Connector >


重启服务

1
2
3
4
5
6
7
[root@centos conf] # ../bin/shutdown.sh
[root@centos conf] # ../bin/startup.sh
[root@mingongge conf] # netstat -lntup|grep java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN  12508 /java
tcp 0 0 0.0.0.0:8009 0.0.0.0:*  LISTEN  12508 /java
tcp 0 0 0.0.0.0:8080 0.0.0.0:*  LISTEN  12508 /java
tcp 0 0 0.0.0.0:8443 0.0.0.0:*  LISTEN  12508 /java


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

通过HTTPS协议访问


浏览器输入https://106.14.200.183:8443

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

因为是自生成的证书,所以才会出现上述证书安全有问题,点击继续浏览此网站即可

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

可能会有的小伙伴会说,https协议默认端口是443,你这是8443完全不一样,其实你错了,无非是个端口而已,因此回头将配置文件里的Connector port="8443"修改成如下

   Connector port="443"

然后重启tomcat服务再测试访问

1
2
3
4
5
6
7
[root@centos conf] # ../bin/shutdown.sh
[root@centos conf] # ../bin/startup.sh
[root@mingongge conf] # netstat -lntup|grep java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 12508 /java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 12508 /java      
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 12508 /java      
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 12508 /java


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

两次的效果是完全一样,可以看出tomcat的https协议配置完成











本文转自 蓝叶子Sheep 51CTO博客,原文链接:http://blog.51cto.com/dellinger/1948058,如需转载请自行联系原作者
目录
相关文章
|
13天前
|
前端开发 Java 应用服务中间件
Springboot对MVC、tomcat扩展配置
Springboot对MVC、tomcat扩展配置
|
7天前
|
运维 Java 应用服务中间件
Tomcat详解(七)——Tomcat使用https配置实战
Tomcat详解(七)——Tomcat使用https配置实战
16 4
|
10天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
14天前
|
域名解析 网络协议 应用服务中间件
阿里云SSL证书配置(HTTPS证书配置)
该内容是一个关于如何在阿里云上准备和购买SSL证书,以及如何为网站启用HTTPS的步骤指南。首先,需要注册并实名认证阿里云账号,然后在SSL证书控制台选择证书类型、品牌和时长进行购买。申请证书时填写域名信息,并进行DNS验证,这包括在阿里云域名管理板块添加解析记录。完成验证后提交审核,等待证书审核通过并下载Nginx格式的证书文件。最后,将证书配置到网站服务器以启用HTTPS。整个过程涉及账户注册、实名认证、证书购买、DNS设置和证书下载及安装。
76 0
|
15天前
|
应用服务中间件 网络安全 nginx
nginx配置https访问
nginx配置https访问
26 0
|
21天前
|
Java 应用服务中间件
Springboot启动的时候初始化的线程池默认配置tomcat
Springboot启动的时候初始化的线程池默认配置tomcat
13 1
|
25天前
|
应用服务中间件 nginx
nginx配置https和直接访问静态文件的方式
nginx配置https和直接访问静态文件的方式
28 3
|
26天前
|
前端开发 应用服务中间件 网络安全
http转为https,ssl证书安装及nginx配置
http转为https,ssl证书安装及nginx配置
40 1
|
1月前
|
运维 安全 Linux
CA认证与HTTPs原理介绍
CA认证与HTTPs原理介绍
28 2