1.申请证书这里我选择的是阿里云的个人免费的证书

文章插图
【给你的项目配置个https吧】因为使用的是内置的Tomcat,所以下载Tomcat类型的

文章插图
2.配置项目将证书XXXX.pfx文件放到项目的resources目录,接着修改Application.yml文件
server:port: 443ssl:key-store: classpath:XXXX.pfxkey-store-password: 证书密码keyStoreType: PKCS12接着修改启动类,添加如下内容,接着启动项目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.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;import org.springframework.context.annotation.Bean;import org.mybatis.spring.annotation.MapperScan;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplicationpublic class MxemApplication implements EmbeddedServletContainerCustomizer {//拦截所有请求@Beanpublic EmbeddedServletContainerFactory servletContainer() {TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {@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;}//配置http转https@Beanpublic Connector httpConnector() {Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL);connector.setScheme("http");//Connector监听的http的端口号connector.setPort(80);connector.setSecure(false);//监听到http的端口号后转向到的https的端口号connector.setRedirectPort(443);return connector;}//这里设置默认端口为443,即https的,如果这里不设置,会https和http争夺80端口@Overridepublic void customize(ConfigurableEmbeddedServletContainer container) {container.setPort(443);}}3.可能出现的问题可能会出现下面的错误Address already in use: bind解决办法以windows系统为例,查看当前端口被哪个进程占用了(进入到CMD中)
netstat -ano|findstr "443"然后找到进程ID,使用任务管理器结束此进程即可 。如果对你有帮助,还请点个赞,点个关注
推荐阅读
- 想给资料找个安全的家?这三款硬盘故障率最低
- 如何把互联网上只能看不能下载的东西给下载下来
- Go 项目实战:Golang HTTP 验证码
- 简单几步给你的 C 盘扩容
- 一篇文章教会你创建vue项目和用vue.js实现数据增删改查
- 谁击败了李自成 李自成让谁给灭了
- PS图文教程 : 灯泡里的世界
- 武则天感业寺出家几年 武则天在感业寺为尼写给李治的诗
- 老班章其实不老,你的老班章够正宗吗
- 贾诩劝曹操立曹丕 贾诩给曹丕的计策
