美文网首页
阿里云搭载Tomcat服务器访问配置Http为Https的相关配

阿里云搭载Tomcat服务器访问配置Http为Https的相关配

作者: 稚友22 | 来源:发表于2020-03-18 11:28 被阅读0次

相关的系统软件版本

本次配置服务器版本为centos7,tomcat版本为8.5.50,证书为阿里云SSL证书,可购买也可申请免费版。

tomcat的安装:

通过相关软件将tomcat上传到服务器的/usr(可随意)目录下,我这里使用的是WinScp,可通过以前的文章找下载方法。
上传完成后如图:


2020-03-18_102421.png

在/usr目录下多了一个apache-tomcat的文件:
使用命令:

tar -zxvf apache-tomcat-8.5.50.tar.gz //解压文件

解压后多了一个apache-tomcat-8.5.50的目录,但是名字太长操作不方便,使用命令修改文件夹名称:

mv apache-tomcat-8.5.50 tomcat8

修改完成后切换到tomcat目录,新建文件夹名为cert,用来存放证书文件,这里为了方便我们使用winscp,如图:


2020-03-18_103052_LI.jpg

上传好证书文件后我们切换到/tomcat/conf目录,使用vim打开编辑文件server.xml(注意使用root用户,不然在命令前加sudo):

vim server.xml

在这里我们一共要改三处位置,为了方便我们在命令模式输入/443找到以下位置,在<Connector>标签中将原来的“8080”改为“80”,“8443”改为“443”,如图:

找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数,对HTTPS默认端口进行配置:
<Connector port="80" protocol="HTTP/1.1" #将Connector port修改为80。
connectionTimeout="20000"
redirectPort="443" /> #将redirectPort修改为SSL默认端口443,让HTTPS请求转发到443端口。

修改完成如下:

2020-03-18_103933.png

第二处找到以下参数:


2020-03-18_105051.png

去掉<!- - 和 - ->这对注释符并做如下修改:

#找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数:
    <Connector port="443"  protocol="org.apache.coyote.http11.Http11NioProtocol"   
         maxThreads="150"
          SSLEnabled="true">
        <SSLHostConfig>
            <Certificate   certificateKeystoreFile="/usr/tomcat/cert/证书域名.pfx" 
             certificateKeystorePassword="证书密码"   #此处certificateKeystorePassword为SSL证书的密码,请用您证书密码文件pfx-password.txt中的密码替换
             certificateKeystoreType="PKCS12" /> 。
        </SSLHostConfig>
    </Connector>

修改完成如图:


2020-03-18_104127_LI.jpg

这里有两点需要注意:
1.证书文件路径要使用绝对路径:"/usr/tomcat8/cert/xxx.pfx"。
2.删除原来配置末尾的 type="RSA"。
否则会报端口占用异常,或文件配置未正常结束异常。
第三处找到文件中以下位置:


2020-03-18_110328.png

将8443改为443,然后按esc 输入:wq保存并退出,然后切换到/tomcat/bin目录。
输入命令启动tomcat:

./startup.sh
2020-03-18_110654.png

出现如下界面说明启动完成,但是不一定是真实的启动完成,切换到/tomcat/logs/目录下:
使用命令查看日志文件:

tail -f catalina.out

如果没有报错则说明启动成功,否则按照情况百度解决,直到以下界面说明启动成功:


2020-03-18_111242.png

或者通过命令查看进程中是否有tomcat服务,判断是否启动。

ps aux | grep tomcat
或
netstat -lnp | grep 80

启动成功后通地址 https://xxx.com成功访问:

2020-03-18_111939.png

这里有两个问题要说一下:
第一,你的服务器需要配置相应的域名解析服务,ping你的域名能返回你的ip地址,且对应的证书文件也是以域名为名字。
第二,如果你的配置和文件都没有问题,且tomcat启动也没有问题还是访问不了,说明你的服务器防火墙策略没有开启443端口,需要开启,可参照百度命令去开启。这里不做解释。

说一个可选操作,在web.xml文件最底部添加以下内容,实现HTTP自动跳转为HTTPS。
<security-constraint>
<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>

重启tomcat在访问完成http->https的自动跳转。

相关文章

网友评论

      本文标题:阿里云搭载Tomcat服务器访问配置Http为Https的相关配

      本文链接:https://www.haomeiwen.com/subject/ytcqyhtx.html