首页 > 其他分享 >Springboot 配置 https 的后端服务

Springboot 配置 https 的后端服务

时间:2023-10-20 10:36:29浏览次数:35  
标签:Connector Springboot tomcat 配置 connector https import org

由于项目需要,要实现https+wss服务,经过2天研究,终于通过Springboot配置成功https+wss服务,记录一下以此分享。

1、生成ssl证书方法(注意-alias的名称要与application的名称一致),两个方法都可以。

//keytool -genkey -alias myhttps -keyalg RSA -keysize 2048 -keystore E:\test.p12 -validity 365
//keytool -genkeypair -alias myhttps -keyalg EC -keysize 256 -validity 365 -keypass 你的密码 -keystore EC_keystore.jks -storepass 你的密码 -storetype jks

2、然后把证书copy的项目中resources目录,并修改application-xxx.yml根据需求放到自己放到不同的application-xxx.yml)。

    

3、新建HttpConnectorConfig类,详细如下:

package com.ucd.platform.service.ic.config;

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.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class HttpConnectorConfig {
    @Value("${server.port}")
    private Integer port;

    /**
     * 获取Http连接器
     * @return Connector
     */
    public Connector getHttpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http"); // 使用http协议
        connector.setSecure(false); // 非安全传输
        connector.setPort(8080); // HTTP监听端口
        connector.setRedirectPort(port); // 重定向端口
        return connector;
    }

    @Bean
    public TomcatServletWebServerFactory tomcatServletWebServerFactory() {
        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(getHttpConnector()); // 添加连接器
        return tomcat;
    }
}

4、这时https服务就可以,访问https://xxx.yy.zzz:端口/就可以了。

  特别说明,新写的demo到这里就结果了,访问https接口正常。但是目录的项目发现启动时间提示“Invalid keystore format”,还有一些莫名其妙的错误,请接着往下参考。

5、如果启动项目,报“Invalid keystore format”,这时修需求改pox.xml

      

 

标签:Connector,Springboot,tomcat,配置,connector,https,import,org
From: https://www.cnblogs.com/szhshy/p/17776441.html

相关文章

  • MounRiver使用技巧及配置6
    1、使用MounRiver仿真时仅擦除程序代码部分flash空间配置(页擦)关于MounRiver仿真时仅擦除程序代码部分flash空间配置 2、使用MounRiver调试时如何配置不下载程序关于MounRiver调试时如何配置不下载程序 3、使用MounRiver下载时如何选择配置部分擦除不全擦关于MounRiver......
  • 关于keil下调用sprintf配置
    1.需要在keil的Target1->target下勾选microlib2.在main函数前面ifdefGNUC/*GNUC*/definePUTCHAR_PROTOTYPEint__io_putchar(intch)elsedefinePUTCHAR_PROTOTYPEintfputc(intch,FILE*f)endif/*GNUC*/3.在main下面PUTCHAR_PROTOTYPE{/*Placeyourimple......
  • 转:SpringBoot禁止配置数据源?
    SpringBoot禁止配置数据源 boot中如果引入了数据源相关的依赖就会自动配置数据源,如果项目中不需要连接数据库,可以手动设置禁用数据源的配置@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,MybatisAutoConfiguration.class}) 疑问是:数据源移除了为......
  • RabbitMQ 安装与配置
    1.安装Erlang下载地址:https://www.erlang.org/downloads下载文件为otp_win64_26.1.1.exe,点击安装,如下图:默认安装地址为C:\ProgramFiles\ErlangOTP,可自行修改安装地址(这里将安装地址改为D盘)安装完成后,设置环境变量,新建ERLANG_HOME修改环境变量path,增加:%ERLANG_H......
  • vscode 上无法 prettier 加载配置文件失败的问题
    1.prettier的配置文件有几种格式,先按照官方文档 配置好2.如果想按住Ctrl+Alt+L格式化代码,需要关闭vscode中的formatOnSave3.每次修改完设置需要重启vscode,这里重启的正确步骤:File->CloseFolder,再重新打开项目注意:不要直接关闭vscode窗口,这样重新打开vscod......
  • SpringBoot基础搭建总结
    现在这一篇就是总结springboot基本的搭建  1.这边就是Controller类,就是类名上面写一个@RestController,然后方法上面写一个@RequestMapping注解,然后就是下面方法的构建,然后下面sout的目的就是为了测试方法的运行,return就是将东西送给浏览器  然后,为了规范工作,和前端更......
  • 解决:Exception: URL fetch failure on https://storage.googleapis.com/tensorflow/tf
    首次装载IMDB数据集时可能会出现的错误。解决方案:1、先将数据集单独下载下来:datasets/imdb.npz·黄健/keras-datasets-Gitee.com2、将其复制到 ~/.keras/dataset目录下:cpimdb.npz ~/.keras/dataset ......
  • 【Django | 开发】中间件配置(记录响应耗时日志)
    ......
  • CH32F系列MCU代码在SRAM中运行配置方法
    第一种:使用Keil仿真的方式。因SRAM启动与FLASH无关,在SRAM中运行,断电后数据丢失,故在keil下仅用于仿真。有四个注意事项:1)、BOOT0、BOOT1都需要接高电平,从RAM启动;2)、在Debug选项中,InitializationFile选项加载SRAM.INI文件;3)、FLashDownload界面中算法文件起始地址修改成RAM的起始......
  • pom.xml常用配置(六)
    SpringCloudSpringCloudDependencies<properties><spring-cloud.version>Hoxton.SR3</spring-cloud.version></properties><dependencyManagement><dependencies><!--添加springcloud家族依赖-->&......