热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于mkcert工具实现SpringBoot项目服务通过Https方式访问

mkcert(Windows环境)1.下载地址:https:github.comFiloSottilemkcerteleases2.选择版本3.以管理员身份运行`命令提示符1)cd

mkcert(Windows环境)


1.下载地址:https://github.com/FiloSottile/mkcert/releases


2.选择版本


3.以管理员身份运行`命令提示符

1) cd C:/ #进入工具存放的目录下
2) mkcert-v1.4.4-windows-amd64.exe -install #命令进行安装
3) mkcert-v1.4.3-windows-amd64.exe #查询是否安装成功
4) mkcert-v1.4.3-windows-amd64.exe -pkcs12 [本地ip] #为本地ip创建p12证书,生成的证书在当前目录

Spring Boot项目配置证书


1.将p12证书存放在项目resources目录下


2.在pom.xml文件中增加配置


src/main/webapp
META-INF/resources

**/*.*

true


3.配置application.yml

server:
port: 9002
ssl:
key-store: classpath:172.20.10.4.p12
key-password: changeit # mkcert工具生成时默认密码
key-store-password: changeit # mkcert工具生成时默认密码
key-store-type: PKCS12

4.在启动类中增加如下代码

@Bean
public ServletWebServerFactory servletContainer() {
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(initiateHttpConnector());
return tomcat;
}
/**
* 让我们的应用支持HTTP是个好想法,但是需要重定向到HTTPS,
* 但是不能同时在application.yml中同时配置两个connector,
* 所以要以编程的方式配置HTTP connector,然后重定向到HTTPS connector
* @return Connector
*/
private Connector initiateHttpConnector() {
Connector cOnnector= new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(80); // http端口
connector.setSecure(false);
connector.setRedirectPort(9002); // application.yml中配置的https端口
return connector;
}

配置至此结束

启动项目访问地址为:https://ip:port/

或者使用: http://ip:80自动会跳转上条地址

*带上小锁是不是很有安全感呢~~~~*

感谢阅读!



推荐阅读
author-avatar
UIUI张南南
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有