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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> SpringBoot2.x配置HTTPS访问 -> 正文阅读

[网络协议]SpringBoot2.x配置HTTPS访问

一.生成SSL证书;

二.生成客户端证书;

三.配置HTTPS访问。

一.生成SSL证书
本文将以通过JDK提供的工具来生成证书,并配置到Spring Boot项目中。
在JDK中提供了keytool的一个证书管理工具。位于%JAVA_HOME%\bin目录下,通过该工具可生成一个免费的证书。
1.新建证书目录,E:\jar_start\sslca,打开cmd命令窗口,切换到E:\jar_start\sslca,输入以下命令:

keytool -genkey -alias springboot-https -keyalg RSA -keysize 2048  -keystore ./https.p12 -validity 365

或者:

keytool -genkey -alias tomcat -keypass 12345678 -keyalg RSA -keysize 2048 -validity 365 -keystore ./tomcat.keystore -storepass 12345678

上述命令对应参数作用如下:

参数说明
genkey指定为创密钥操作。
alias指定keystore的别名。
keyalg指定加密算法,这里采用RSA。
keysize指定密钥长度。
keystore指定生成文件位置。
validity指定密钥有效期,单位为天。

过程如下:可以任意填写

E:\jar_start\sslca>keytool -genkey -alias tomcat -keypass 12345678 -keyalg RSA -keysize 2048 -validity 365 -keystore ./tomcat.keystore -storepass 12345678
您的名字与姓氏是什么?
  [Unknown]:  liu
您的组织单位名称是什么?
  [Unknown]:  chao
您的组织名称是什么?
  [Unknown]:  chao
您所在的城市或区域名称是什么?
  [Unknown]:  chao
您所在的省//自治区名称是什么?
  [Unknown]:  chao
该单位的双字母国家/地区代码是什么?
  [Unknown]:  chao
CN=liu, OU=chao, O=chao, L=chao, ST=chao, C=chao是否正确?
  []:  y


Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore ./tomcat.keystore -destkeystore ./tomcat.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12

文件夹下生成:tomcat.keystore文件
在这里插入图片描述
二.生成客户端证书
命令:

keytool -genkey -alias client -keypass 12345678 -keyalg RSA -keysize 2048 -validity 365 -storetype PKCS12 -keystore ./client.p12 -storepass 12345678

过程如下:可以任意填写

E:\jar_start\sslca>keytool -genkey -alias client -keypass 12345678 -keyalg RSA -keysize 2048 -validity 365 -storetype PKCS12 -keystore ./client.p12 -storepass 12345678
您的名字与姓氏是什么?
  [Unknown]:  chao
您的组织单位名称是什么?
  [Unknown]:  chao
您的组织名称是什么?
  [Unknown]:  chao
您所在的城市或区域名称是什么?
  [Unknown]:  chao
您所在的省//自治区名称是什么?
  [Unknown]:  chao
该单位的双字母国家/地区代码是什么?
  [Unknown]:  chao
CN=chao, OU=chao, O=chao, L=chao, ST=chao, C=chao是否正确?
  []:  y

生成文件:client.p12
在这里插入图片描述

三.配置HTTPS访问。
1.打开已有的SpringBoot工程

2.将证书文件:client.p12复制到resources目录下

在这里插入图片描述
3.修改application.yml
key-store:值的路径要注意按实际修改

  server:
  port: 443 #注意,这里是https访问的的端口号
  http:
    port:8080
  ssl:
    key-store: classpath:client.p12
    key-store-password: 12345678
    key-store-type: PKCS12
    key-alias: client  #tomcat

4.修改启动类

添加两个方法,完整代码如下:

package com.ruoyi;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;

/**
 * 启动程序
 * 
 * @author ruoyi
 */
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class RuoYiApplication
{
    public static void main(String[] args)
    {
        // System.setProperty("spring.devtools.restart.enabled", "false");
        SpringApplication.run(RuoYiApplication.class, args);
    }
    @Bean
    public Connector connector(){
        Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8080);
        connector.setSecure(false);
        connector.setRedirectPort(443);
        return connector;
    }

    @Bean
    public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector){
        TomcatServletWebServerFactory tomcat=new TomcatServletWebServerFactory(){
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint=new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection=new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(connector);
        return tomcat;
    }
}

5.启动Springboot项目

6.浏览器访问 http://127.0.0.1:8080/system/wechat/getCodes
或者直接访问:https://127.0.0.1/system/wechat/getCodes
在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-10 11:24:18  更:2021-12-10 11:26:27 
 
开发: 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年11日历 -2024/11/26 10:33:57-

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