Tomcat http改成使用https协议(SSL证书)

 

我们想要通过https访问程序,首先需要获得一个数字证书,自己给自己签发而来的证书也叫自签名ssl证书,这种类型的证书可以随意签发,不受任何约束和监督,也不受各大浏览器的信任,基本没什么安全性可言,所以https证书获取不建议使用这种。

而由受信任的CA机构签发的https证书,才是用户们正确的选择。这种CA机构签发证书需要经过一系列的审核,而且是有有效期的,一般不超过2年,能兼容市面上大部分的浏览器,也就是受各大浏览器的信任,安全性有保障。目前比较受欢迎的几大国际品牌有Symantec、Geotrust、Comodo、Thawte以及RapidSSL等。想要获取靠谱的https证书可以从他们当中选择一款。

我们这里使用JDK自带keytool工具,来创建本地SSL证书。

 

目录

1 Window 10中Tomcat使用Https请求

2 Linux中Tomcat使用Https请求

3 Spring boot 内置Tomcat使用Https请求


 

1 Window 10中Tomcat使用Https请求

1.1 jdk中找到keytool.exe

进入到jdk的安装目录,也就是环境变量中配置%JAVA_HOME%/bin的目录下,在bin目录下按住shift+右键,打开Powershell窗口

Tomcat http改成使用https协议(SSL证书)_第1张图片

 

1.2在打开的dos窗口中,输入以下命令:

以下命令将生产一对非对称密钥和自我签名的证书

keytool -genkey -v -alias keystoreKey -keyalg RSA -validity 3650 -keystore E:\tomcat\apache-tomcat-8.0.53\conf\tomcat.keystore

keytool -genkey:自动使用默认的算法生成公钥和私钥

-alias 名称 :给证书取个别名,这里设置的是keystoreKey

-keyalg:制定密钥的算法,如果需要制定密钥的长度,可以再加上keysize参数,密钥长度默认为1024位,使用DSA算法时,密钥长度必须在512到1024之间,并且是64的整数倍

-validity:证书的有效日期,默认是90天,这里设置的3650天

-keystore:参数可以指定密钥库的名称,密钥库其实是存放秘钥和证书文件,会将生成的证书存放到指定的目录下。

 

1.3 输入证书信息

Tomcat http改成使用https协议(SSL证书)_第2张图片

注意:域名以tomcat地址为例

在核对信息的时候,如果直接Enter,或者输入其它,会重新开始录入信息

keystore指定证书存放目录必须存在,否则报系统找不到错误

Tomcat http改成使用https协议(SSL证书)_第3张图片

进入到tomcat\conf目录下,发现证书已经存在

Tomcat http改成使用https协议(SSL证书)_第4张图片

 

1.4 修改tomcat配置信息

打开tomcat的目录下conf/server.xml 文件Tomcat http改成使用https协议(SSL证书)_第5张图片

 
 

找到以下代码段

Tomcat http改成使用https协议(SSL证书)_第6张图片

将注释去掉后修改代码如下: 这里Https端口设置的是8443(https 访问默认是443端口, HTTP 访问默认是80)

Tomcat http改成使用https协议(SSL证书)_第7张图片

 

增加了keystoreFile 和 keystorePass 两个参数

keystoreFile :表示证书文件的放置位置

keystorePass :证书密钥库设置的密码

注意:redirectPort 端口号和port端口号可以自定义,端口号必须相同

Tomcat http改成使用https协议(SSL证书)_第8张图片

 

1.5 验证https

进入到tomcat\bin目录下启动tomcat

http:启动成功后在浏览器中输入http://localhost:8080

Tomcat http改成使用https协议(SSL证书)_第9张图片

 

Https:tomcat配置的端口为8443,在浏览器中输入https://localhost:8443/

点击高级->继续前往localhost(不安全)进入到tomcat

Tomcat http改成使用https协议(SSL证书)_第10张图片

Tomcat http改成使用https协议(SSL证书)_第11张图片

在谷歌浏览器查看证书信息

点击不安全->选择证书

Tomcat http改成使用https协议(SSL证书)_第12张图片

可以看到我们配置的证书信息,以及有效期

Tomcat http改成使用https协议(SSL证书)_第13张图片

 

 

1.6将HTTP访问跳转到HTTPS访问

打开tomcat\conf目录,找到web.xml

Tomcat http改成使用https协议(SSL证书)_第14张图片

找标签

Tomcat http改成使用https协议(SSL证书)_第15张图片

在标签下添加如下信息



    CLIENT-CERT
    Client Cert Users-only Area



    
        SSL
        /*
    
    
        CONFIDENTIAL
    

 

Tomcat http改成使用https协议(SSL证书)_第16张图片

保存后用默认的http访问你的web项目 就会自动跳转用https访问

比如访问在浏览器中输入http://localhost:8080 会自动跳转到 https://localhost:8443/

 

2 Linux中Tomcat使用Https请求

Linux中配置Tomcat和 Window 中是一样的,可以直接按照window步骤操作

务必使用root用户连接到虚拟机后,进入到jdk安装目录bin目录下,直接使用命令来生成SSL证书,唯一的区别是在安装证书的过程中,可能语言不同(具体依虚拟机使用语言为准)例:

Tomcat http改成使用https协议(SSL证书)_第17张图片

需要注意的是linux和window路径的不同,例:

keytool -genkey -v -alias keystoreKey -keyalg RSA -validity 3650 -keystore /tomcat/apache-tomcat-8.0.53/conf/tomcat.keystore

配置完成后别忘记在虚拟器中开启Https端口号

 

3 Spring boot 内置Tomcat使用Https请求

3.1 使用JDK自带keytool工具,创建本地SSL证书,生成方法参考Window 10 步骤

 

3.2 将生成的tomcat.keystore文件拷贝到springboot项目根目录下,和pom.xml同级

Tomcat http改成使用https协议(SSL证书)_第18张图片

 

3.3 修改application.properties文件,添加一下信息

#http端口号 / spring boot 默认端口号8080
#server.port=8081

#https端口号
server.port=8443

#https证书信息
#设定持有SSL certificate的key store的路径
server.ssl.key-store=tomcat.keystore
#访问key store中key的密码.
server.ssl.key-store-password=123456
#设定key store的类型.
server.ssl.key-store-type=JKS
#设定key store中key的别名
server.ssl.key-alias=keystoreKey

Tomcat http改成使用https协议(SSL证书)_第19张图片

 

3.4 启动服务以后,https通过访问 https://localhost:8443来访问项目

 

你可能感兴趣的:(Https,tomcat,Https,Tomcat)