Spring Boot 如何同时支持 http 与 https 访问?
2020-03-01 16:03:31来源:博客园 阅读 ()
Spring Boot 如何同时支持 http 与 https 访问?
原文链接:Spring Boot 如何同时支持 http 与 https 访问?
___
大多数项目要么要求 https 协议来访问要么直接用 http 协议,但有些项目就是这么奇怪要求同时支持两种协议。
此示例中使用Spring Boot 内置的 tomcat 服务器,我拿到的 SSL 证书是 crt 类型的。所有首先需要将证书转成 jks 类型的。
crt 转 jks
# 转p12
openssl pkcs12 -export -out keystore.pkcs12 -inkey nexus.key -in nexus.crt
# 这里需要设置密码
# 再将p12格式文件转为.jks格式:
keytool -v -importkeystore -srckeystore keystore.pkcs12 -srcstoretype PKCS12 -destkeystore
keystore.jks -deststoretype JKS
# 输入上步设置的密码并设置新密码 可以和上一步一样的密码
Windows 系统需要安装 openssl 后才可以执行上述命令。
安装
将生成的 jks 文件放到项目的 resource 目录下,开始配置 application.yml 文件。
server:
port: 8888
custom:
# http 端口
httpPort: 9999
ssl:
key-store: classpath:keystore.jks
key-password: 123456
key-store-type: JKS
tomcat:
uri-encoding: utf-8
basedir: tmp
#
servlet:
context-path: /
然后编写 Https配置类:HttpConfig.java
import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Author: ChangXuan
* @Decription: 配置同时支持 HTTP 与 HTTPS 访问
* @Date: 19:39 2020/2/20
**/
@Configuration
public class HttpsConfig {
@Value("${server.custom.httpPort}")
private Integer httpPort;
@Bean
public ServletWebServerFactory serverFactory() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
/**
* 配置http
* @return
*/
private Connector createStandardConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(httpPort);
return connector;
}
}
注意事项
application.yml 中配置的 jks 文件的目录为 classpath ,classpath 指的是 target/classes 目录。所以运行时如果报错“找不到 jks 文件”,就手动将 jks 文件复制到此目录下一份。
原文链接:https://www.cnblogs.com/chxuan/p/12390476.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- Flink 如何分流数据 2020-06-11
- 老板让你抗住千万级流量,如何做架构设计? 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash