Linux Tomcat 环境搭建与配置ssl证书-实现http自动跳转https

  • Post author:
  • Post category:linux




java jdk环境部署,解压jdk至app目录

tar zxvf jdk-8u60-linux-x64.tar.gz -C /app/
ln -s jdk1.8.0_60 jdk      #名字太长,建软链接



配置java jdk环境变量,写入系统/etc/profile配置文件

cat >> /etc/profile << 'EOF'
export JAVA_HOME=/app/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/app/tomcat
EOF



执行生效

. /etc/profile



解压tomacat软件包

tar zxvf apache-tomcat-8.5.66.tar.gz -C /app/



名字太长,建软链接

ln -s apache-tomcat-8.5.66 tomcat



检查java+tomcat配置信息

tomcat/bin/version.sh



启动tomcat服务

./bin/startup.sh



查看tomcat端口

# 8080提供web服务,8005 shutdown端口,关闭tomcat使用
[root@web01 tomcat]# ss -anltp |grep java
LISTEN     0      1       [::ffff:127.0.0.1]:8005                  [::]:*                   users:(("java",pid=6560,fd=64))
LISTEN     0      100       [::]:8080                  [::]:*                   users:(("java",pid=6560,fd=52))



解除固定IP访问限制

#从tomcat8.5开始 管理端默认只能通过本地使用 127.0.0.1 访问 (类似于nginx all 127.0.0.1 ; deny all; )
#默认情况下,只能从与Tomcat运行在同一台计算机上的浏览器访问管理器。如果要修改此限制,则需要编辑管理器的context.xml
文件。
[root@web01 tomcat]# find -type f -name "context.xml" |xargs grep 127
./webapps/host-manager/META-INF/context.xml:         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
./webapps/manager/META-INF/context.xml:         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

#解决固定IP访问限制
sed  -i 's#127#\\d+#g'   ./webapps/host-manager/META-INF/context.xml ./webapps/manager/META-INF/context.xml

#修改conf/tomcat-users.xml,在tomcat-users标签添加3个变量,用于管理端使用
<role rolename="admin-gui"/>
 <role rolename="manager-gui"/>
 <role rolename="host-gui"/>
 <user username="tomcat" password="tomcat" roles="admin-gui,manager-gui,host-gui"/>



重启Tomcat服务

[root@web01 tomcat]#bin/shutdown.sh
[root@web01 tomcat]#bin/startup.sh



java相关命令

jps        java ps显示java进程pid
jmap       java进程 jvm内存信息
jstack     Java进程 线程信息



Tomcat目录结构

/app/tomcat/bin   #tomcat脚本目录   
                startup.sh    #启动tomcat
                shutdown.sh   #关闭tomcat
				version.sh    #部署完成后 检查 jdk 与tomcat
                catalina.sh   #卡特琳娜#tomcat核心脚本 startup shutdown 都会调用这个脚本。配置 java启动参数 ,tomcat远程管理 配置jvm参数
				   
/app/tomcat/conf  #tomcat配置文件目录
                server.xml      #主配置文件,类似nginx.conf
                web.xml         #补充 额外功能
                tomcat-user.xml #tomcat管理端配置文件 用户名 和 密码

/app/tomcat/logs  #tomcat日志文件目录
                catalina.out    #tomcat显示最全面日志,可查看 error startup 启动的时间等。catalina.out切割之后内容不变,未来需要logroate切割
                catalina.2019-12-16.log   #catalina.out的切割后的日志,按天切割
                localhost_access_log.2019-12-16.txt   #tomcat acccess.log #访问日志

/app/tomcat/webapps  # tomcat站点目录		
/app/tomcat/lib      #库文件目录,tomcat插件



Tomcat配置文件 server.xml 简介

#shutdown端口,关闭tomcat使用
<Server port="8005" shutdown="SHUTDOWN">

# http协议端口
<Connector port="8080" protocol="HTTP/1.1"

#指定域名及站点目录,类似nginx server_name/root
<Host name="localhost"  appBase="webapps"

#日志配置
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".log"   #日志前缀与后缀
               pattern="%h %l %u %t &quot;%r&quot; %s %b" /> #日志的格式,&quot 在html语言代表双引号
		        #%h   客户端ip地址或者是域名
                #%l   (小写L) 远程用户  
                #%u   用户 Remote user that was authenticated (if any), else '-' (escaped if required)
                #%t   时间 日期和时间
                #&quot 双引号
                #%r   请求起始行 $request 
                #%s   $status 状态码
                #%b   大小



部署测试

把zrlog war包放入到webapps站点目录,tomcat会自动解压部署



配置ssl证书-实现http自动跳转https

#从阿里云SSL证书服务控制台下载Tomcat服务器证书(包含PFX格式证书文件和TXT格式密码文件)
#申请的SSL证书时绑定的域名已完成DNS解析
#解压Tomcat证书,生成证书及密码文件

unzip 5744746_taola.shop_tomcat.zip
pfx-password.txt 
5744746_taola.shop.pfx
mv 5744746_taola.shop.pfx taola.shop.pfx #重命名



修改tomcat配置文件server.xml

#指定域名及站点根目录,站点目录已部署项目jpress
<Host name="taola.shop"  appBase="/warcode/"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="jpress_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

#指定访问80端及跳转的端口443
<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/taola.shop.pfx"  #指定证书路径
                         certificateKeystorePassword="FuIC5tnH"  	#指定密码
                         certificateKeystoreType="PKCS12" />		#证书类型为PFX格式时,certificateKeystoreType修改为PKCS12
        </SSLHostConfig>
    </Connector>



修改tomcat配置文件web.xml

#在web.xml文件最底部添加以下内容,实现HTTP自动跳转为HTTPS

<security-constraint>
         <web-resource-collection >
              <web-resource-name >SSL</web-resource-name>
              <url-pattern>/*</url-pattern>   #任何uri
       </web-resource-collection>
       <user-data-constraint>
                    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
 </security-constraint>



重启Tomcat服务

在Tomcat下的bin目录中执行./shutdown.sh关闭Tomcat服务
在Tomcat下的bin目录中执行./startup.sh开启Tomcat服务



浏览器访问测试

配置wind host文件指定域名服务器 10.0.0.9 taola.shop
http://taola.shop/jpress



配置ssl证书-实现http自动跳转https

#从阿里云SSL证书服务控制台下载Tomcat服务器证书(包含PFX格式证书文件和TXT格式密码文件)
#申请的SSL证书时绑定的域名已完成DNS解析
#解压Tomcat证书,生成证书及密码文件

unzip 5744746_taola.shop_tomcat.zip
pfx-password.txt 
5744746_taola.shop.pfx
mv 5744746_taola.shop.pfx taola.shop.pfx #重命名



修改tomcat配置文件server.xml

#指定域名及站点根目录,站点目录已部署项目jpress
<Host name="taola.shop"  appBase="/warcode/"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="jpress_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

#指定访问80端及跳转的端口443
<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/taola.shop.pfx"  #指定证书路径
                         certificateKeystorePassword="FuIC5tnH"  	#指定密码
                         certificateKeystoreType="PKCS12" />		#证书类型为PFX格式时,certificateKeystoreType修改为PKCS12
        </SSLHostConfig>
    </Connector>



修改tomcat配置文件web.xml

#在web.xml文件最底部添加以下内容,实现HTTP自动跳转为HTTPS
<security-constraint>
         <web-resource-collection >
              <web-resource-name >SSL</web-resource-name>
              <url-pattern>/*</url-pattern>   #任何uri
       </web-resource-collection>
       <user-data-constraint>
                    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
       </user-data-constraint>
 </security-constraint>



重启Tomcat服务

在Tomcat下的bin目录中执行./shutdown.sh关闭Tomcat服务
在Tomcat下的bin目录中执行./startup.sh开启Tomcat服务



浏览器访问测试

配置wind host文件指定域名服务器 10.0.0.9 taola.shop
http://taola.shop/jpress



版权声明:本文为oyangyufu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。