springboot配置进行https请求访问demo
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相关推荐
- Springboot配置SSL(https)
Springboot配置SSL(https) SpringBoot可以通过在application.properties或application.yml配置文件中配置各种server.ssl.*属性来 ...
- springboot 配置多个请求服务代理
springboot 配置服务代理 有时候,我们可能有下边这样的需求: 即,针对于分布式服务,我们会有多种业务接口服务,但是服务器上可能只要求开放一个服务的端口,比如上图的restA项目端口是对外开放 ...
- Nginx转发https请求访问http后端接口
Nginx转发https请求 问题描述 前后端分离项目,前端使用Nginx部署,后端是Spring Boot项目,使用tomcat部署. Nginx配置了SSL,并且前端项目需要https协议访问.后 ...
- python怎么爬虫https的内容_爬虫15 python 如何处理HTTPS请求访问 SSL证书验证
1 https和SSL之间是什么关系 https和SSL之间是什么关系:https就是在http上面加了一层ssl协议,在http站点上部署SSL数字证书就变成了https. 现在随处可见 https ...
- springboot配置允许跨域访问
2019独角兽企业重金招聘Python工程师标准>>> 因springboot框架通常用于前后端分离项目,因此需配置后台允许跨域访问(具体看注释),配置类如下,将该类加入工程中即可. ...
- 阿里云服务器Centos/tomcat6 配置http/https证书访问
因为项目需要,整体网络请求转向https,以前没弄过,于是遇到一些问题,不过最后终于是解决了. 服务器采用的是阿里云ECS,CentOS,Tomcat6. 先是搜索了一堆https证书安装的网页,各种 ...
- docker配置HTTP/HTTPS代理访问外网
一. 设置代理原因 因为公司安全需要,所有外网需配置代理后才能上网,docker pull centos会报错: docker: Error response from daemon: Get ...
- JAVA实现发送HTTPS请求(SSL双向认证)
一.项目背景 Java项目需要作为客户端发起HTTPS请求访问服务端,并且需要携带证书进行SSL双向认证,当前提供的证书相关文件有:ca.crt.ca.key.client.crt.client.ke ...
- SpringBoot配置Https请求运行tomcat启动失败,ssl keystore password was incorrect
直接看后面,密码有俩个,可能你用了不对的那个 [SSL]如何使用SpringBoot内置的tomcat配置SSL,从而实现HTTPS访问(基于阿里云云服务器) 下载完成需要配置之后,一样的yml格式报 ...
最新文章
- 周志华:“数据、算法、算力”人工智能三要素,在未来还要加上“知识”
- android 酷狗demo_Android仿酷狗旋转界面功能-自定义控件实现
- java tomcat jms_JavaWeb之使用Tomcat、JNDI与ActiveMQ实现JMS消息通信服务
- Android使用PorterDuffXfermode实现遮罩效果
- 实现 消息提醒图标_用了5年苹果手机都不知道,原来小汽车图标是这个意思 ! ! !...
- 自定义导航--wx.getMenuButtonBoundingClientRect() 万机兼容
- 浙江水利水电学院计算机管理办法,浙江水利水电学院校级重点学科建设管理办法-科技处.PDF...
- mysql导出表到新建_用navicat导出mysql的数据库后,再用navicat导入到新建的数据库,报错。...
- 基金侧袋机制: 指引与操作规范
- OSN 3500 SDH智能光传输系统整机与单板技术分享
- 神鬼传奇客户端解包图片(ui\common)
- 推荐几个程序员赚钱的平台,你有技术就有钱!
- 《数字图像处理》题库3:判断题
- 工程师视角的手游SDK
- 大觉寺到鹫峰线路_大觉寺—鹫峰—望京塔—羊台山—凤凰岭—七王坟徒步游记...
- -bash: netstat: command not found
- 最近发现一个不错的网站,可以用它来赚钱
- nginx的access.log文件详解
- app显示服务器图片不显示,如何将存在本地服务器的图片,在APP前台显示
- 已成功拿下字节、腾讯、脉脉offer,这原因我服了
热门文章
- 复杂网络——常见的论文下载和真实数据集下载网站
- java 虚函数_Java的虚方法
- 报错:Parameter ‘XXX‘ implicitly has an ‘any‘ type.解决方法
- 正则表达式(Perl 示例)
- 单线激光雷达原理深度解析
- NanoHttp的使用入门
- 常用的参数和非参数检验方法
- 关于Halcon::threshold 用时
- 边缘检测(opencv_python下)
- Ubuntu下彻底卸载mysql、安装mysql、及MySQLdb模块