将HTTP接口配置成HTTPS

一、使用Java的keytool.exe程序生成本机的TLS许可

  1. 找到Java的jdk目录进入bin

默认安装路径C:\Program Files\Java\jdk1.8.0_91\bin

  1. 进入命令面板,在bin的路径栏中输入cmd敲击回车即可

  1. 使用keytool

keytool -genkeypair -alias tomcat_https -keypass 123456 -keyalg RSA -keysize 1024 -validity 3650 -keystore ./tomcat_https.keystore -storepass 123456

keytool命令的参数:

  • -alias 别名

  • -keypass 指定生成密钥的密码

  • -keyalg 指定密钥使用的加密算法(如 RSA

  • -keysize 密钥大小

  • -validity 过期时间,单位天

  • -keystore 指定存储密钥的密钥库的生成路径、名称

  • -storepass 指定访问密钥库的密码

填写证书的基本信息

随意填写~~~

填写完成输入y确定并敲击回车键,即可在当前目录下 生成一份证书

二、配置TomCat

  1. 修改tomcat的配置文件

找到配置文件并用笔记本或其他文本编辑器打开

  1. 添加证书配置

在tomcat的配置文件中找到图中代码

添加一个 Connector

<Connector port="访问端口" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="证书地址"  keystorePass="证书访问密码" />
  1. 验证是否成功

启动tomcat

使用https访问端口8443 https://localhost:8443/,若出现下图选择高级选项再点击接受即可

出现这个界面说明配置成功

三、配置SpringBoot的HTTPS访问

  1. 添加证书

将Java生成的证书拷贝一份到springboot的资源文件包下

  1. 配置SptingBoot配置文件的证书信息

根据自己的配置文件选择对应的配置即可二选一

properties配置文件

server.ssl.protocol=TLS
server.ssl.key-store=src/main/resources/tomcat_https.keystore #证书地址
server.ssl.key-alias=tomcat
server.ssl.enabled=true
server.ssl.key-store-password=123456 #访问密码
server.ssl.key-store-type=JKS

yml配置文件

  ssl:
    protocol: TLS
    key-store: src/main/resources/tomcat_https.keystore #证书地址
    key-alias: tomcat
    enabled: true
    key-store-password: 123456 #访问密码
    key-store-type: JKS
  1. 启动SpringBoot

访问接口请求成功即可

四、tomcat配置http自动跳转https

  1. 找到tomcat的web.xml配置文件

  1. 添加security-constraint(安全约束)

在配置文件的最下面添加security-constraint标签

security-constraint的内容为:

<!-- 强制使用https,http请求会自动转为https-->
    <login-config>
        <auth-method>CLIENT-CERT</auth-method>
        <realm-name>Client Cert Users-only Area</realm-name>
    </login-config>
    <!--配置网站支持https,/* 表示全部请求都走https, transport-guarantee 标签设置为 CONFIDENTIAL以便使应用支持 SSL。 如果需要关闭 SSL ,将 CONFIDENTIAL 改为 NONE 即可 -->
    <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>
  1. 注意事项

开启了安全约束后service中的redirectPort参数要对应上

如:http我配置了个8080,https配置的是8443,开启安全约束后8080的配置应该为

redirectPort的值是https端口的,否则服务无法跳转,就会报错

若是对应上那么我们访问http://localhost:8080/就会自动转到https://localhost:8443/这个地址

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值