springboot配置https

springboot配置https

  1. 什么是https
    超文本传输安全协议(HyperText Transfer Protocol Secure),缩写HTTPS:(常称为HTTP over TLS、HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS主要的开发目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司在1994年首次提出,随后扩展到互联网上。
    另外,还有一种安全超文本传输协议(S-HTTP),也是 HTTP 安全传输的一种实现,但是 HTTPS 的广泛应用而成为事实上的 HTTP 安全传输实现,S-HTTP并没有得到广泛支持。
  2. 准备工作
  3. 首先需要一个https证书,可以从各个云服务厂商处申请一个免费的,不过自己做实验没必要这么麻烦,可以借助Java自带的JDK管理工具keytool来生成一个免费的https证书。
  4. 进入到%JAVVA_HOME%\bin目录下,执行如下命令生成证书
keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048  -keystore D:\javaboy.p12 -validity 365

命令含义如下:
genkey:表示要创建一个新的秘钥;
alias:表示keystore的别名;
keyalg:表示使用的加密算法是RSA,一种非对称加密算法;
keysize:表示秘钥的长度;
keystore:表示生成的秘钥的存放位置;
validity:表示秘钥的有效时间,单位为天
具体生成过程如下图:
在这里插入图片描述

  1. 命令执行完成后,会在D盘生成一个javaboy.p12证书,有了这个文件准备工作就可以了
    在这里插入图片描述

  2. 在项目中引入https

  3. 将上面的证书拷贝到resources目录下,然后在application.properties添加如下配置信息

server.ssl.key-store=classpath:javaboy.p12  #密钥文件名
server.ssl.key-alias=tomcathttps          #密钥别名
server.ssl.key-store-password=111111  #就是在cmd命令执行过程中输入的密码
  1. 配置完成后,就可以启动 Spring Boot 项目了,此时如果我们直接使用 Http 协议来访问接口
    在这里插入图片描述
  2. 改用 https 来访问 ,结果如下:
    在这里插入图片描述
    这是因为我们自己生成的 https 证书不被浏览器认可,不过没关系,我们直接点击继续访问就可以了(实际项目中只需要更换一个被浏览器认可的 https 证书即可)
©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页