我本来是不想配置的
这两天给爸妈写个小app,现学现用,主要就是获取我服务端配置的影视app, 同时我大爷也需要,后端得根据用户和tv类型再分个类。
再解决了诸多困难之后,准备签名发布app了,发现又出幺蛾子,在我给我妈买的android13平板上打开,请求接口报错:
cleartext communication to xxx.xxx.xxx not permitted by network security policy
我去查了一下发现targetSdk 在27以后不允许使用http了,哎我操,真会玩,就真像你使用了tls就安全了一样!!!
没办法,只能配置下https.
配置https
首先去腾讯云 ssl 申请一个证书,当前二级域名的证书,只要域名验证通过,审核很快,(我是采用文件验证,另外两种一直通过不了)
然后由于springboot项目是tomcat启动的,要下在JKS的证书!!
如果没有配置证书密码的话,下载下来的文件夹里会有密码。
然后把证书放到resources目录下,在application.yml中配置
server:
port: 2800
ssl:
key-store: classpath:diary.devilwst.top.jks
key-password: z67yhu98ikop09i
key-store-type: JKS
配置好之后放到服务器,注意开通安全组,https就可以用了
同时支持http
在启动类里加上这个.
注意:2801是http端口,2800是https端口
@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(2801);
return connector;
}
如果访问出现Error: connect ETIMEDOUT ,采用了宝塔的话宝塔的安全组也要放开,服务器的也要放开。