Linux下Tomcat服务器开启HTTPS

## 前文说明

经过了大约两周的备案过程,前天终于得到了备案成功的消息,内心也是十分的激动。但是当我访问的时候,Google浏览器提示不安全,这是因为没有采用HTTPS导致的,因此开启了长达一天的痛苦摸索。

## 实验环境

我用的是 Linux 的 Ubantu 系统,服务器为 Tomcat9,域名是从阿里云提供的。

## 第一步 开启端口

首先确认您的Tomcat服务器上已经开启了443端口(HTTPS服务的默认端口),因为默认情况下,非root用户不能用1024以下的端口。

Ubantu的打开防火墙命令 `sudo ufw enable`

关闭防火墙 `sudo ufw disable`

查看状态 `disable/status`

对于某一个端口允许访问某一个端口:

`ufw allow 端口号`

拒绝访问某一个端口:

`ufw deny 端口号`

比如我们要打开443端口的命令为`ufw allow 443`。如果提示没有权限,前面加上sudo即可。

## 第二步 安装OpenSSL工具

查看是否安装OpenSSL工具命令为`openssl version -a`,安装信息如下图:

![OpenSSL安装](http://cdn.catchstar.top/Linux%E9%83%A8%E7%BD%B2SSL01.png)

如果没有安装,按照以下两个命令安装

`sudo apt-get install openssl`

`sudo apt-get install libssl-dev`

安装好后查看状态即可。

## 第三步 获取SSL证书

我们去阿里云的控制台下载SSL证书即可,至于怎么获取就不讲了,网上太多了。

Tomcat支持PFX和JKS两种验证方式,阿里云提供的是PFX格式的,我们也可以按照以下命令转换为JKS格式。

`keytool -importkeystore -srckeystore PFX格式的文件名.pfx -destkeystore JKS格式的文件名.jks -srcstoretype PKCS12 -deststoretype JKS`

## 第四步 上传证书到服务器

我们用WinSCP工具连接上服务器后,在Tomcat安装目录下新建一个cert文件夹,把我们的证书上传到该文件夹即可。新建文件夹样例图如下:

![cert文件夹](http://cdn.catchstar.top/Linux%E9%83%A8%E7%BD%B2SSL02.png)

## 第五步 添加HTTPS信息

在Tomcat安装目录/conf下修改server.xml,在里面添加如下信息。

```

<Connector port="443"   #port属性根据实际情况修改(https默认端口为443)。如果使用其他端口号,则您需要使用https://yourdomain:port的方式来访问您的网站。

    protocol="HTTP/1.1"

    SSLEnabled="true"

    scheme="https"

    secure="true"

    keystoreFile="Tomcat安装目录/cert/domain name.pfx" #证书名称前需加上证书的绝对路径,请使用您证书的文件名替换domain name。

    keystoreType="PKCS12"

    keystorePass="证书密码"  #请替换为密码文件pfx-password.txt中的内容。

    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"/>

```

## 第六步 查看效果

在Tomcat的bin目录下输入以下命令`./shutdown.sh`关闭Tomcat,使用命令`./start.sh`启动服务器。

在浏览器输入`https://你的域名`即可访问。

## The end

当然,如果我们想强制使用https的话,可以修改conf下的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>

```

![个人网站](https://www.catchstar.top/posts/9fb74442.html)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值