tomcat 9安装ssl证书,开启https访问(腾讯云服务器为例)

之前写过一种使用nginx安装ssl证书,然后端口映射到tomcat的方式。
链接Nginx+tomcat安装ssl证书

突然看到一篇博客 Tomcat9使用免费的Https证书加密网站的方法
在tomcat9成功安装ssl证书。

注意

我是从腾讯云购买的服务器跟域名跟证书。
服务器是linux服务器。ubuntu18.04(注意,此方法跟服务器类型无关)
域名备案后,可以免费申请ssl证书,在腾讯云控制台找一下即可。申请成功后可以进行证书的下载(是一个压缩包,里面包含四种服务器类型的证书,其中tomcat目录下包含一个jks证书和一个密码txt文件)

开始

  1. 从tomcat官网下载tomcat的压缩包,上传到云服务器的某个位置。解压
    (例如位置在 /home/ubuntu/apache-tomcat-9.0.31)
  2. 将证书压缩包里的tomcat目录中的jks文件上传到你服务器的某个位置。
    (例如 /home/ubuntu/apache-tomcat-9.0.31/下)
  3. 编辑tomcat的server.xml(在tomcat目录下的conf中)。添加如下代码
 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                keystoreFile="/home/ubuntu/apache-tomcat-9.0.31/你的域名.jks"
                keystorePass="那个密码文件里的密码"
                clientAuth="false" sslProtocol="TLS" />

保存退出即可。
4. 重启tomcat,在tomcat的bin目录下,执行

./shutdown.sh
./startup.sh

5.测试
在浏览器输入https://你的域名:8443即可访问。
注:你可以在server.xml中将8443改为443,但由于1024以下的端口号是特殊端口 --------linux对于非root权限用户不能使用1024以下的端口-----,需要使用root权限来操作,包括tomcat的启动与关闭,包括配置文件的修改。

6.另外可以转发Http请求到Https

这一步非常简单,编辑apache-tomcat-9.0.31/conf/web.xml文件,在其中添加如下代码:

<!-- 增加所有网址自动跳转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>

此时浏览器直接输入 你的域名:8443即可访问。
7.如果不能成功,请检查云服务器的安全组是否开放相应端口。
(腾讯云服务器需要在控制台的安全组查看)
另外,检查云服务器的tomcat服务是否开启。

以上有任何问题在下方留言,或者联系qq:1021752458

你可能感兴趣的:(java相关)