首页 Linux正文

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

王昊 Linux 2019-08-06 221 0

首先要清楚单向认证与双向认证的区别

双向认证要求服务器和用户双方都有证书,需要服务端与客户端提供身份认证,只能是服务端允许的客户能去访问,安全性相对于要高一些。

单向认证不需要客户拥有CA证书,只要求站点部署了ssl证书就行,任何用户都可以去访问(IP被限制除外等),只是服务端提供了身份认证。

安装JDK

注意:安装之前需要查看下系统是否安装了openjdk,如果安装了openjdk,请先卸载,否则安装不了oracle官方的jdk

rpm -qa | grep openjdk

卸载方法:

yum remove java-* -y

jdk安装包下载:

https://pan.baidu.com/s/1AKghYc3pmVNuuttf3FjvNA

Windows中下好了之后上传到服务器端的/usr/local下

解压

cd /usr/local

tar xf jdk-8u91-linux-x64.tar.gz

mv jdk1.8.0_91/ /usr/local/jdk

配置JDK需要的环境变量

vim /etc/profile

JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使配置立即生效

source /etc/profile

查看版本

java -version

java version "1.8.0_91"Java(TM) SE Runtime Environment (build 1.8.0_91-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

安装Tomcat

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.43/bin/apache-tomcat-8.5.43.tar.gz

tar xf apache-tomcat-8.5.43.tar.gz

mv apache-tomcat-8.5.43/ /usr/local/tomcat

cd tomcat/bin/

tar xf commons-daemon-native.tar.gz

cd commons-daemon-1.1.0-native-src/unix/

./configure -with-java=/usr/local/jdk

make

编译完成之后会生成一个jsvc文件

将jsvc文件拷贝至/tomcat/bin目录下

cp jsvc /usr/local/tomcat/bin/

配置daemon.sh

cd /usr/local/tomcat/bin/

vim daemon.sh

在 #!/bin/bash 下加入以下内容

# chkconfig:2345 10 90
JAVA_HOME=/usr/local/jdk
CATALINA_HOME=/usr/local/tomcat

配置用户与权限

useradd tomcat -M -s /sbin/nologin

chown -R tomcat /usr/local/tomcat/

chmod +x /usr/local/tomcat/bin/*.sh

启动服务

/usr/local/tomcat/bin/daemon.sh start

浏览器访问:服务器IP:8080

img

优化执行路径

ln -s /usr/local/tomcat/bin/daemon.sh /etc/init.d/tomcat

chmod +x /etc/init.d/tomcat

可以用以下命令进行服务的停止与启动了

/etc/init.d/tomcat stop/start

将Tomcat 加入到service管理器

chkconfig –add tomcat

设置tomcat开机启动

chkconfig tomcat on

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

keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/tomcat.keystore -validity 36500

Enter keystore password:      //输入密钥库密码
Re-enter new password:         //输入密码
What is your first and last name?

    [Unknown]:     whao            //输入你的名字

What is the name of your organizational unit?

    [Unknown]:     blog.whaoub.com    //输入组织单位名称

What is the name of your organization?

    [Unknown]:     blog.whaoub.com    //输入组织名称

What is the name of your City or Locality?

    [Unknown]:     yantai            //输入你的城市

What is the name of your State or Province?

    [Unknown]: shandong            //输入你的省份

What is the two-letter country code for this unit?

    [Unknown]:     CN                //输入国家,CN 为中国

Is CN=whao, OU=blog, O=blog, L=yantai, ST=shandong, C=CN correct?

    [no]:     y        //输入 y 确认配置,输入 n 重新填写上面信息    

Enter key password for <tomcat8>
        (RETURN if same as keystore password):      //如果与前面相同直接回车,也可以自定义

keytool命令如下:

-genkey  

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

-alias   产生别名

-keystore  指定密钥库的名称

-keyalg   指定密钥的算法    

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

-keysize   指定密钥长度 

-storepass 指定密钥库的密码 

-keypass   指定别名条目的密码 

以日期为后缀复制一份文件作为备份

cd /usr/local/tomcat/conf/

cp server.xml server.xml.$(date +%F)

修改server.xml配置文件,使其支持https

vim /usr/local/tomcat/conf/server.xml

        <Connector port="443" protocol="HTTP/1.1"
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                clientAuth="false" keystoreFile="/usr/local/tomcat/tomcat.keystore"
                keystorePass="000000" sslProtocol="TLS" />
        <Connector port="8009" protocol="AJP/1.3" redirectport="443" URIEncoding="UTF-8" />

重启服务

../bin/shutdown.sh

../bin/startup.sh

打开浏览器访问:https://服务器IP:443

此时的Tomcat就可以通过https访问了

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论