SpringBoot配置https

代码地址:springboot配置https

1.配置https相关要求

需要通过命令生成相关的证书,springboot通过证书才能够进行端口转发到https请求。进而实现https的方式

执行命令:
keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/https.keystore -storepass 123456关键字:
alias:密钥别名
keypass : 指定别名条目的密码(私钥的密码)
keyalg:生证书的算法名称,RSA是一种非对称加密算法
keysize:证书的大小
validity:证书的有效期
keystore:证书的生成位置
keypass:指定密钥库的密码(获取keystore信息所需的密码)

2.springboot目录结构

3.依赖

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.6.7</version></dependency></dependencies>

4.配置文件application.yaml

根据命令生成的https.keystore文件,拷贝到springboot项目resource目录下

server:ssl:key-store: classpath:https.keystorekey-store-type: JKSkey-alias: tomcatkey-password: 123456key-store-password: 123456port: 8089# 实现逻辑,创建http服务,然后进行端口转发到https
# http端口
http:port: 8080

5.启动类

package com.liqq;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class HttpsApplication {public static void main(String[] args) {SpringApplication.run(HttpsApplication.class, args);}
}

6.配置类

package com.liqq.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;/*** @author 黔程似景* @description https相关配置类* @date 2022/8/14 14:19* @blame 黔程似景**/
@Configuration
public class HttpsConfig {@Value("${http.port}")private int httpPort;@Value("${server.port}")private int httpsPort;/*** http重定向到https** @return*/@Beanpublic TomcatServletWebServerFactory servletContainer() {TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {@Overrideprotected void postProcessContext(Context context) {SecurityConstraint constraint = new SecurityConstraint();constraint.setUserConstraint("CONFIDENTIAL");SecurityCollection collection = new SecurityCollection();collection.addPattern("/*");constraint.addCollection(collection);context.addConstraint(constraint);}};tomcat.addAdditionalTomcatConnectors(httpConnector());return tomcat;}@Beanpublic Connector httpConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");//Connector监听的http的默认端口号connector.setPort(httpPort);connector.setSecure(false);//监听到http的端口号后转向到的https的端口号,也就是项目配置的portconnector.setRedirectPort(httpsPort);return connector;}}

7.接口controller

package com.liqq.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author 黔程似景* @description TODO* @date 2022/7/6 21:00* @blame 黔程似景**/
@RestController
public class HttpsController {@GetMapping("/log")public String get(){System.out.println("这是一个https请求");return "这是一个https请求";}
}

8.测试效果

输入地址:http://localhost:8080/log 会自动跳转到地址:https://localhost:8089/log

9.参考文献

https://www.jb51.net/article/233123.htm

springboot配置进行https请求访问demo相关推荐

  1. Springboot配置SSL(https)

    Springboot配置SSL(https) SpringBoot可以通过在application.properties或application.yml配置文件中配置各种server.ssl.*属性来 ...

  2. springboot 配置多个请求服务代理

    springboot 配置服务代理 有时候,我们可能有下边这样的需求: 即,针对于分布式服务,我们会有多种业务接口服务,但是服务器上可能只要求开放一个服务的端口,比如上图的restA项目端口是对外开放 ...

  3. Nginx转发https请求访问http后端接口

    Nginx转发https请求 问题描述 前后端分离项目,前端使用Nginx部署,后端是Spring Boot项目,使用tomcat部署. Nginx配置了SSL,并且前端项目需要https协议访问.后 ...

  4. python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证

    1 https和SSL之间是什么关系 https和SSL之间是什么关系:https就是在http上面加了一层ssl协议,在http站点上部署SSL数字证书就变成了https. 现在随处可见 https ...

  5. springboot配置允许跨域访问

    2019独角兽企业重金招聘Python工程师标准>>> 因springboot框架通常用于前后端分离项目,因此需配置后台允许跨域访问(具体看注释),配置类如下,将该类加入工程中即可. ...

  6. 阿里云服务器Centos/tomcat6 配置http/https证书访问

    因为项目需要,整体网络请求转向https,以前没弄过,于是遇到一些问题,不过最后终于是解决了. 服务器采用的是阿里云ECS,CentOS,Tomcat6. 先是搜索了一堆https证书安装的网页,各种 ...

  7. docker配置HTTP/HTTPS代理访问外网

    一. 设置代理原因     因为公司安全需要,所有外网需配置代理后才能上网,docker pull centos会报错: docker: Error response from daemon: Get ...

  8. JAVA实现发送HTTPS请求(SSL双向认证)

    一.项目背景 Java项目需要作为客户端发起HTTPS请求访问服务端,并且需要携带证书进行SSL双向认证,当前提供的证书相关文件有:ca.crt.ca.key.client.crt.client.ke ...

  9. SpringBoot配置Https请求运行tomcat启动失败,ssl keystore password was incorrect

    直接看后面,密码有俩个,可能你用了不对的那个 [SSL]如何使用SpringBoot内置的tomcat配置SSL,从而实现HTTPS访问(基于阿里云云服务器) 下载完成需要配置之后,一样的yml格式报 ...

最新文章

  1. 周志华:“数据、算法、算力”人工智能三要素,在未来还要加上“知识”
  2. android 酷狗demo_Android仿酷狗旋转界面功能-自定义控件实现
  3. java tomcat jms_JavaWeb之使用Tomcat、JNDI与ActiveMQ实现JMS消息通信服务
  4. Android使用PorterDuffXfermode实现遮罩效果
  5. 实现 消息提醒图标_用了5年苹果手机都不知道,原来小汽车图标是这个意思 ! ! !...
  6. 自定义导航--wx.getMenuButtonBoundingClientRect() 万机兼容
  7. 浙江水利水电学院计算机管理办法,浙江水利水电学院校级重点学科建设管理办法-科技处.PDF...
  8. mysql导出表到新建_用navicat导出mysql的数据库后,再用navicat导入到新建的数据库,报错。...
  9. 基金侧袋机制: 指引与操作规范
  10. OSN 3500 SDH智能光传输系统整机与单板技术分享
  11. 神鬼传奇客户端解包图片(ui\common)
  12. 推荐几个程序员赚钱的平台,你有技术就有钱!
  13. 《数字图像处理》题库3:判断题
  14. 工程师视角的手游SDK
  15. 大觉寺到鹫峰线路_大觉寺—鹫峰—望京塔—羊台山—凤凰岭—七王坟徒步游记...
  16. -bash: netstat: command not found
  17. 最近发现一个不错的网站,可以用它来赚钱
  18. nginx的access.log文件详解
  19. app显示服务器图片不显示,如何将存在本地服务器的图片,在APP前台显示
  20. 已成功拿下字节、腾讯、脉脉offer,这原因我服了

热门文章

  1. 复杂网络——常见的论文下载和真实数据集下载网站
  2. java 虚函数_Java的虚方法
  3. 报错:Parameter ‘XXX‘ implicitly has an ‘any‘ type.解决方法
  4. 正则表达式(Perl 示例)
  5. 单线激光雷达原理深度解析
  6. NanoHttp的使用入门
  7. 常用的参数和非参数检验方法
  8. 关于Halcon::threshold 用时
  9. 边缘检测(opencv_python下)
  10. Ubuntu下彻底卸载mysql、安装mysql、及MySQLdb模块