http: 超文本传输协议
https: 安全套接字超文本传输协议
想要后端集成SSL,便需要去申请SSL证书(有免费的)
IDEA使用的是内置的tomcat,所以便下载后的tomcat证书中.pfx导入resources文件夹中,然后根据同文件夹的.txt中密码来配置文件(同存http和https,需要配置两个端口)
配置YML
server:
ssl:
key-store: classpath:*.pfx
key-store-password: *
key-store-type: PKCS12
port: 9080 #https的端口
http:
port: 10080 #http的端口
配置https
在config中新增配置文件TomcatConfig(也可以在启动类中直接进行配置)
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;
/**
* 同时存在http和https
*/
@Configuration
public class TomcatConfig {
@Value("${server.http.port}")
private int httpPort;
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
private Connector createStandardConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(httpPort);
return connector;
}
}
其实http和https同存也是坏处的,对于一个网站用户而言,如果突然改变了协议头的话,那么其网站的用户原先网站链接就会失效,很少有人会再去保存书签之类的。
出于方便,会将原先的http请求拦截后后redirectUrl为https,这样不就避免了原先链接失效了吗?
之后有空再弄弄下这个吧
不过https也挺香的,弄过微信小程序的应该都知道,https协议头是程序颁布的底线对吧,哈哈