IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 记录-SpringBoot 2.x 使用https并且将http重定向到https -> 正文阅读

[网络协议]记录-SpringBoot 2.x 使用https并且将http重定向到https

为什么使用https?

  1. 项目中,有涉及到微信小程序,其要求接口通信必须通过https,因而后端需要支持https
  2. https更加安全

为什么重定向?

  1. 便于访问,通过浏览器访问时,通常会是http的方式,因此需要同时支持http与https,因此需要将http的请求重定向到https
  2. 项目中由于前期前端使用http连接的,因而需要支持。

SpringBoot 2.x 使用https

  1. 生成证书
    这个可以通过购买或者直接生成
    直接生成命令:
keytool -genkey -alias tomcat -dname "CN=Andy,OU=kfit,O=kfit,L=HaiDian,ST=BeiJing,C=CN" -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365

命令的各个参数的含义:
-genkey :生成key;
-alias :key的别名;
-dname:指定证书拥有者信息
-storetype :密钥库的类型为JCEKS。常用的有JKS(默认),JCEKS(推荐), PKCS12,BKS,UBER。每个密钥库只可以是其中一种类型。
-keyalg :DSA或RSA算法(当使用-genkeypair参数),DES或DESede或AES算法(当使用-genseckey参数);
-keysize :密钥的长度为512至1024之间(64的倍数)
-keystore :证书库的名称
-validity : 指定创建的证书有效期多少天
dname的值详解:
CN(Common Name名字与姓氏)
OU(Organization Unit组织单位名称)
O(Organization组织名称)
L(Locality城市或区域名称)
ST(State州或省份名称)
C(Country国家名称)

这时候在目录:C:\Users\下就会看到一个文件keystore.p12。到这里SSL证书就有了。

  1. SpringBoot使用
    yaml配置:
server:
  ssl:
    # 证书路径
    key-store: classpath:keystore.p12
    # 与申请时输入一致
    key-alias: tomcat
    enabled: true
    key-store-type: PKCS12
    #与申请时输入一致
    key-store-password: 123456
  # 浏览器默认端口 和 80 类似,https默认的端口号为443
  port: 443

启动后,日志打印显示正确

INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 443 (https)

Http重定向Https

我的这个方式适合Spring 2.x的版本
添加Tomcat自定义配置:

@Component
public class TomcatWebServerCustom implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {

    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
        connector.setPort(8088);
        connector.setScheme("http");
        connector.setSecure(false);
        connector.setRedirectPort(443);
        factory.addConnectorCustomizers(c -> c.setAttribute("relaxedQueryChars", "{}[]|"));
        factory.addAdditionalTomcatConnectors(connector);
    }
}

启动后,显示https与http同时加载

INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 443 (https) 8088 (http)

至此,项目可以支持http与https的访问。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-18 11:30:16  更:2021-11-18 11:31:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/3 22:25:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码