问题描述
在进行项目部署的时候,目前我们的前端往往都会以https的方式运行,如果后端项目没有进行SSL配置继续使用http协议,会导致“已阻止加载混合活动内容“http://地址:端口/接口””问题的出现,为了解决这个问题,我们需要对后端项目进行SSL证书的配置,以开启https模式
说明
我们需要注意到的是,在项目上线时,SSL证书是需要进行申请的,通常一张SSL证书是可以配置前端以及后端的(前后端共用一张SSL证书是可以的)
解决方案
最简单快速的方法就是在application.yml中进行SSL配置设置,不过在我遇到的问题中application.yml文件没有被扫描到,所以在本案例中我们可以编写一个utils方法来进行手动注册:
首先将你的SSL证书中以’JKS’为后缀的文件放到resources资源文件夹下(不需要新建目录),
然后在src/utils下新建sslConfig:
@Configuration
public class sslConfig {
private String keyStore= "classpath:证书名称.jks";
private String keyStorePassword="密码";
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
connector.setScheme("https");
connector.setSecure(true);
connector.setPort(8080); //你后端的端口号是什么
connector.setAttribute("SSLEnabled", true);
connector.setAttribute("keystorePass", keyStorePassword);
connector.setAttribute("keystoreFile", keyStore);
});
return tomcat;
}
}
在以上配置完成后,我们运行该项目,如果控制台出现以下内容就是成功了:
INFO 19360 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (https) with context path ''