快速安装Tomcat 并实现HTTPS访问

HTTPS,在HTTP下加了一层SSL,用于安全的HTTP数据传输,对于数据敏感的网址必须要使用HTTPS协议,本文将介绍如何快速安装Tomcat,并实现HTTPS访问。

安装Tomcat

安装tomcat必须得有java环境,所以先安装JDK;

1、安装JDK

[[email protected] ~]# rpm -ivh jdk-8u161-linux-x64.rpm
Preparing...                ########################################### [100%]
   1:jdk1.8                 ########################################### [100%]
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...
[[email protected] ~]# 

2、添加Java系统环境变量

[[email protected] ~]# cat /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=$JAVE_HOME/bin:$PATH
[[email protected] ~]# 

3、加载环境变量

[[email protected] ~]# . /etc/profile.d/java.sh

4、查看JDK是否安装成功

[[email protected] ~]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
[[email protected] ~]# 

5、安装Tomcat

[[email protected] ~]# tar  -zxf apache-tomcat-8.0.50.tar.gz  -C /usr/local/

6、创建软连接

[[email protected] ~]# ln -s /usr/local/apache-tomcat-8.0.50/ /usr/local/tomcat

7、添加Tomcat系统环境变量

[[email protected] ~]# cat /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH

8、加载环境变量

[[email protected] ~]# . /etc/profile.d/tomcat.sh

9、测试是否生效

[[email protected] ~]# catalina.sh version
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.50
Server built:   Feb 7 2018 20:06:05 UTC
Server number:  8.0.50.0
OS Name:        Linux
OS Version:     2.6.32-642.6.2.el6.x86_64
Architecture:   amd64
JVM Version:    1.8.0_161-b12
JVM Vendor:     Oracle Corporation
[[email protected] ~]# 

10、启动Tomcat服务

[[email protected] ~]# catalina.sh  start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

11、测试访问

Tomcat默认端口为8080,所以访问时使用IP+8080访问即可;

★ 到这里,Tomcat就安装完成了,但是只是默认环境,还需要根据需求自定义配置;

实现HTTPS访问

1、添加域名解析

到自己的域名解析商处,添加一条A记录指向你的服务器IP即可;

2、申请证书

使用刚才添加的域名申请一个SSL证书;

3、上传证书

在tomcat目录新建一个ssl目录,将证书文件上传到这个目录;

[[email protected] ~]# cd /usr/local/tomcat/
[[email protected] tomcat]# mkdir ssl
[[email protected] tomcat]# rz

4、修改server.xml

VIM打开server.xml,添加ssl连接器,在8080端口连接器下面添加如下配置:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    keystoreFile="/usr/local/tomcat/ssl/YourDomain.jks"
    keystorePass="SSLPass"
    clientAuth="false" sslProtocol="TLS" />
注意:
    keystoreFile :证书存放目录,可以写绝对路径或Tomcat相对路径;
    keystorePass:证书私钥密码;

5、修改HOST配置

    <Engine name="Catalina" defaultHost="localhost">
## 这里指定的localhost是默认HOST的名称,修改为证书绑定的域名即可

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps"
### 将这里的localhost修改Wie刚才添加解析的域名即可,且必须与证书的通用名称保持一致
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />

      </Host>

★这里只需要将里两个localhost修改为证书绑定域名即可,也就是是将该域名与此HOST绑定;

6、重启Tomcat服务

[[email protected] tomcat]# catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[[email protected] tomcat]# catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

7、查询端口是否监听

[[email protected] tomcat]# ss -ntl
State      Recv-Q Send-Q                                                  Local Address:Port                                                    Peer Address:Port
LISTEN     0      1                                                           127.0.0.1:8005                                                               *:*
LISTEN     0      100                                                                 *:8009                                                               *:*
LISTEN     0      100                                                                 *:8080                                                               *:*
LISTEN     0      128                                                                 *:22                                                                 *:*
LISTEN     0      100                                                         127.0.0.1:25                                                                 *:*
LISTEN     0      100                                                                 *:443                                                                *:*
[[email protected] tomcat]# 

8、测试访问

使用https://YourDomain/ 来访问;

★用浏览器访问显示小绿锁,F12查看,提示:This is secure (valid HTTPS),说明证书已经配置成功;

配置HTTP自动跳转到HTTPS

上面我们实现了HTTPS访问,但是客户使用http访问,还是会走http协议,依然是不安全的,没有达到我们的需求,下面配置HTTP自动跳转到HTTPS;

1、修改web.xml

在</welcome-file-list>后面,也就是倒数第二行里,加上如下配置:

<login-config>
    <!-- Authorization setting for SSL -->
    <auth-method>CLIENT-CERT</auth-method>
    <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <security-constraint>
    <!-- Authorization setting for SSL -->
    <web-resource-collection>
    <web-resource-name>SSL</web-resource-name>
    <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
    </security-constraint>

2、修改sever.xml

修改非SSL连接器的请求跳转到SSL连接器上,修改如下配置:

原来为:
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
修改为:
    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />

★将默认8080端口修改为80端口,访问时就不需要加8080端口了,因为HTTP协议默认走的是80端口;
★将8443端口修改为443端口,意思是来自80端口的请求都跳转至443端口;

3、重启服务

[[email protected] conf]# catalina.sh  stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[[email protected] conf]# catalina.sh  start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

4、检测端口

查看端口,发现原来监听的8080端口已经没在了,而是监听的我们上面修改的80端口;

[[email protected] conf]# ss -nlt
State      Recv-Q Send-Q                                                  Local Address:Port                                                    Peer Address:Port
LISTEN     0      100                                                                 *:8009                                                               *:*
LISTEN     3      100                                                                 *:80                                                                 *:*
LISTEN     0      128                                                                 *:22                                                                 *:*
LISTEN     0      100                                                         127.0.0.1:25                                                                 *:*
LISTEN     0      100                                                                 *:443                                                                *:*
[[email protected] conf]# 

5、测试访问

这里我们使用linux下的curl命令测试,能更直观的看到跳转效果;

[[email protected] ~]# curl  http://YourDomain/  -I
HTTP/1.1 302 Found
Server: Apache-Coyote/1.1
Cache-Control: private
Expires: Thu, 01 Jan 1970 08:00:00 CST
Location: https://YourDomain/
Transfer-Encoding: chunked
Date: Fri, 13 Apr 2018 16:06:04 GMT

★ 到这里,Tomcat配置HTTP自动跳转HTTPS就已经完成了~

原文地址:http://blog.51cto.com/guoxh/2103315

时间: 2024-08-01 21:59:19

快速安装Tomcat 并实现HTTPS访问的相关文章

centos7安装tengine强制使用HTTPS访问

操作系统:centos7.2 x64tengine:Tengine/2.2.0主机IP: 10.0.0.12 一.安装tengine 1.1 下载源码安装包 1.1.1 源码包pcre-8.40            用于支持正则表达式 [[email protected] ~]# cd /usr/local/src/ [[email protected] src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-

【tomcat】Centos7最快速安装tomcat网页实验环境(yum安装)

一.实验环境 EXSI6.0虚拟机系统:Centos7yum源:mirror.163.com.repo 二.实验步骤 1.yum安装tomcat yum install tomcat -y 2.yum安装tomcat网页访问必要服务 yum install tomcat-webapps tomcat-admin-webapps -y 3.开放tomcat:8080端口,开机启动 firewall-cmd --zone=public --permannet --add-prot=8080/tcp

解决CentOS7安装Tomcat不能被外部访问的问题

在CentOS7安装了Tomcat,在服务器内部使用火狐浏览器通过localhost:8080是可以访问的,但是不能被外部访问,主要原因是因为防火墙的存在,导致端口不能被访问.CentOS是使用firewall而不是iptables貌似也找不到iptables这个目录了.解决这个问题的办法就是通过firewall添加我们需要开放的端口.我们先使用一个命令查看防火墙是启用状态 firewall-cmd --state 如果启用了防火墙会返回running,未启用返回not running,在run

Tomcat 下启用 https:// 访问

步骤: 1 创建 .keystore 文件 JDK中自带了keytool工具用于生成证书文件 keytool工具在$JAVA_HOME/bin 目录下可以使用命令 keytool -genkey -alias tomcat -keyalg RSA 来创建数字证书生成证书步骤比较多,具体用法参照 使用keytool.exe生成数字证书 2 打开tomcat/conf/server.xml配置文件,启用 SSL HTTP/1.1 连接器,端口 8443 <Connector port="844

traefik 结合 docker-compose 的快速安装及使用

traefik 介绍 traefik 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理.负载均衡工具. 它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file-) 来自动化.动态的应用它的配置文件设置. 特性一览 它非常快 无需安装其他依赖,通过 Go 语言编写的单一可执行文件 支持 Rest API 多种后台支持:Docker, Swarm

(总结)CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL

(总结)CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL PS:这个是懒人yum快速安装法,用于开发和测试环境很方便,用于没有特殊要求的生产环境也可以.特殊要求的还是自己去编译安装吧~~ 1.安装Apahce.PHP.MySQL和PHP连接MySQL数据库的包:# yum -y install httpd php mysql mysql-server php-mysql 2.安装Apache常用扩展包:# yum -y install httpd-m

tomcat 6 配置 双向https 访问

工作中使用了银行接口,需要部署单独的web服务器,接收https的请求,研究了一下tomcat 6进行双向https的配置,参考了网上的文章以及不断的摸索,总算小有心得,这里简单的整理和记录一下. 同样使用的是jdk自带的keytool,废话不多说,直接上图,首先进入java_home\bin目录,执行如下命令: keytool -genkey -v -alias tomcat -keyalg RSA -keystore e:\keystore\tomcat.keystore -validity

Tomcat创建HTTPS访问,java访问https

一 https和ssL HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL. 它是一个URI scheme(抽象标识符体系),句法类同http:体系.用于安全的HTTP数据传输.https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层

CentOS7安装lamp并实现Xcache、https访问

            LAMP指的是Linux(操作系统).ApacheHTTP 服务器,MySQL数据库(有时也指MariaDB) 和Php(有时也是指perl或python) ,他们共同组成了一个强大的Web应用程序平台. https全称为Hyper Text Transfer Protocol over Secure Socket Layer:基于http支持ssl协议,主要作用是用于安全的传输数据:http是超文本的传输协议,信息是明文的,安全性很低:而https则是具有安全性的ssl