怎么在Linux系统下对Tomcat9安装SSL证书?

Posted DreamMakers

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在Linux系统下对Tomcat9安装SSL证书?相关的知识,希望对你有一定的参考价值。

怎么在Linux环境下对Tomcat9安装SSL证书?

背景

现在给后台服务器进行HTTPS升级是很常见的事情,在之前的文章中已经针对怎么购买域名、申请证书和进行nginx服务器HTTPS升级进行了详细的介绍,想了解的可以阅读下面的这个文章。
如何申请域名、购买证书并在Nginx服务器上实现HTTPS?

在这篇文章中之所以说下如何在Tomcat9上进行安装SSL证书,是因为工作中都是接触的在Nginx服务器上安装证书,但是对于Tomcat上安装证书一直没有搞过,好奇是咋弄的,所以今天抽出时间实践了一下,做下记录,也给需要的朋友有个参考。

预热:申请和下载SSL证书?

关于证书的申请上面的文章已经给出了方式,而且是免费的,不过只是一年有效期哦。大家可以到阿里云平台上进行申请,当然腾讯云也有免费的域名,看大家的需要了。阿里云的证书是需要单独申请的,而腾讯云是在你首次购买域名的时候附带赠送的。

下面是阿里云和腾讯云的网站入口:

阿里云
腾讯云

我这里申请了一个证书,和我买的测试完的域名www.lefenxiang.club进行了绑定。可以看下我在阿里云上申请的免费证书,只要登录相应云平台的控制台就可以找到:

我们需要做的就是点击上“下载”入接口,就可以弹出相应的下载页面,我们这里选择Tomcat,如下所示:

下载之后,可以得到一个zip文件,解压之后可以得到两个文件,如下所示:

需要注意的是,这里下载得到的pfx文件是和pfx-password.txt文件中的密码是配套使用的,每次下载生成的文件和密码都不一样,切勿混用。

如何在Tomcat9上安装SSL证书?

在安装前,我们需要将我们下载的证书使用scp上传到目标服务器上,在tomcat9的根目录下创建一个cert文件夹,用于存放证书文件,如下所示:

然后进行unzip解压,并且简单的对证书文件进行

接下来需要注意的是,Tomcat 9强制要求证书别名设置为tomcat。需要在命令行中通过下面命令进行设置,切记!!!

我们进入到证书所在的目录,然后执行下面的命令,当然这里要写你自己的域名
keytool -changealias -keystore lefenxiang.club.pfx -alias alias -destalias tomcat


在完成好上面的准备工作之后,我们接下来需要进行SSL相关的一些配置,在tomcat根目录下的conf子目录下,找到server.xml配置文件,添加如下的配置:

	port="8443"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="cert/lefenxiang.club.pfx"
    keystoreType="PKCS12"
    keystorePass="J2YY4sAG"
    clientAuth="false"
    SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
	ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"


上面已经完成了所有的配置,但是如果你想HTTP请求强制跳转HTTPS,那么需要在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>


至此,相关的所有工作都完成了。我们需要验证下是否配置成功了。我们将Tomcat启动起来,通过在tomcat根目录下执行./bin/start.sh来启动,然后访问https://www.lefenxiang.club:8443/,看看能不能正常访问。
这里之所以带上8443端口,是因为我的443端口有其他用,这里tomcat配置成8443端口了,所以需要在域名后带上端口,如果是使用默认的443端口,那么就不需要带上端口了。


看到了熟悉的那只猫了,大功告成!!!

结语

本文对如何在Linux环境下,对Tomcat9安装SSL证书进行了详细的说明,希望对有需要的有所帮助,谢谢。

以上是关于怎么在Linux系统下对Tomcat9安装SSL证书?的主要内容,如果未能解决你的问题,请参考以下文章

Certbot SSL自动生成证书

如何安装SSL证书 4种方法来安装SSL证书

怎么在linux搭建Apache?在linux下对apache进行简单配置

linux下对编程比较友好的字体都有哪些

apache怎么没有ssl.conf-Linux系统管理

在CentOS7上安装Tomcat9的方法教程