由于jeecgboot对TomcatServletWebServerFactory进行了单独的配置,这里的水其实还挺深的。首先我们在阿里云中拿到了ssl下载jks这里就不多说了。
首先将jks文件导入到resource中。
然后在配置文件中填写证书的信息
这边推荐的端口号还是443的比较好。
然后再pom文件中导入resource:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>www.jlgd.com.jks</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>www.jlgd.com.jks</include>
</includes>
</resource>
</resources>
</build>
其实到这里已经基本结束了,但是有时候会出现TomcatServletWebServerFactory报错导致服务启动失败的情况,我们可以在TomcatFactoryConfig这个类下加入以下配置。
public class TomcatFactoryConfig {
/**
* tomcat-embed-jasper引用后提示jar找不到的问题
*/
@Bean
public TomcatServletWebServerFactory tomcatFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
}
};
factory.addConnectorCustomizers(connector -> {
connector.setProperty("relaxedPathChars", "[]{}");
connector.setProperty("relaxedQueryChars", "[]{}");
});
//新加
// factory.addAdditionalTomcatConnectors(createHTTPConnector());
return factory;
}
/*
* 配置tomcat自定义连接参数 hua加入
* @return
*/
private Connector createHTTPConnector() {
//Connector port有两种运行模式(NIO和APR),选择NIO模式:protocol="org.apache.coyote.http11.Http11NioProtocol"
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
//启用http(80)端口
connector.setScheme("http");
//设置安全连接标志,该标志将被分配给通过该连接接收的请求
//secure新的安全连接标志
//如果connector.setSecure(true),则http使用http, https使用https; 分离状态,因此设置false
connector.setSecure(false);
//http默认端。将来可以设置为80
connector.setPort(8080);
//重定向证书端口443,便于http自动跳转https
//connector.setRedirectPort(443); 将来可能使用,用到443端口的时候。
return connector;
}
}
再次启动,是没有问题的。