spring boot 开启https

news/2024/7/7 16:06:46

1.生成证书

keytool -genkey -alias tomcat -keyalg RSA -keystore E:/https.keystore

  

将生成好的证书放在项目根目录即可

2 修改配置文件

server:
  port: 443
  servlet:
    context-path: /
  tomcat:
    uri-encoding: UTF-8
    max-threads: 1000
    min-spare-threads: 30
  ssl:
    #生成证书的名字
    key-store: https.keystore
    #密钥库密码
    key-store-password: 123456
    key-store-type: JKS
    key-alias: tomcat

 3 开启访问80端口跳转433端口

package com.yjkj.repository;

import org.apache.catalina.connector.Connector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class RepositoryApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(RepositoryApplication.class, args);
    }

    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
        return tomcat;
    }

    private Connector createHTTPConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        //同时启用http(80)、https(8443)两个端口
        connector.setScheme("http");
        connector.setSecure(false);
        connector.setPort(80);
        connector.setRedirectPort(443);
        return connector;
    }
}

 

https访问

  

http访问

 

转载于:https://www.cnblogs.com/joyny/p/11309584.html


http://www.niftyadmin.cn/n/4646365.html

相关文章

从github上的优秀实例看MVP模式

github上有一个关于MVP模式学习的实例https://github.com/antoniolg/androidmvp,虽然只有简单的几个类,却收获了几千个星。这个例子确实通俗易懂,直观的体现出了MVP模式的特点: 考虑这样一个需求,页面显示一个列表&…

显著减少项目gradle编译时间

原文来自https://zeroturnaround.com/rebellabs/making-gradle-builds-faster/ 1.对build过程进行配置实现编译优化: (1)首先了解如何用命令行进行编译: 使用git命令行进入项目根目录,然后执行 ./gradlew :app:asse…

CVE-2018-12613(远程文件包含)

问题在index.php的55~63行// If we have a valid target, lets load that script instead if (! empty($_REQUEST[target])&& is_string($_REQUEST[target])&& ! preg_match(/^index/, $_REQUEST[target])&& ! in_array($_REQUEST[target], $target_bl…

Support Design库中的BottomSheetDialog组件使用

首先来看这个组件使用的经典案例,微信公众号文章操作功能显示: 首先要知道BottomSheetDialog有两种,第一种弹出后不影响主界面交互,第二种弹出后主界面变暗不能交互,这里分别进行使用。 1.首先是普通的BottomSheetDia…

Netty内存池ByteBuf 内存回收

内存池ByteBuf 内存回收: 在前面的章节中我们有提到, 堆外内存是不受JVM 垃圾回收机制控制的, 所以我们分配一块堆外内存进行ByteBuf 操作时, 使用完毕要对对象进行回收, 本节就以PooledUnsafeDirectByteBuf 为例讲解有关内存分配的相关逻辑。PooledUnsafeDirectByteBuf 中内存…

Android 导入库文件在主工程使用不了库文件的代码

主工程不识别这个文件 但是我明明加入这个lib库了为什么使用不了呢? 原因在这里 将库文件里面的build.gradle中的依赖implementation转换成api 然后sync一下 酱酱酱~~~不报错啦 是不是超级简单?

SocketChannel 读取ByteBuf 的过程

SocketChannel 读取ByteBuf 的过程: 我们首先看NioEventLoop 的processSelectedKey 方法: private void processSelectedKey(SelectionKey k, AbstractNioChannel ch) {//获取到channel 中的unsafefinal AbstractNioChannel.NioUnsafe unsafe ch.unsafe…

ReactNative学习实例(八) 第三方组件TabNavigator底部导航栏

TabNavigator是github上开源的一个rn组件,是适用于ios和安卓两个平台的底部导航栏。 组件地址:https://github.com/expo/react-native-tab-navigator 1.首先通过命令行将组件引入项目: 进入项目根目录并执行 npm install react-native-tab-…