spring cloud zuul 配置https
1.获取阿里云免费证书:阿里云免费证书藏得比较深,要按套路出牌才能找到:
进入阿里云证书购买界面:选择品牌-Symantec,证书类型选择-增强型 OV SSL,就会出现以下界面,然后点击购买绑定域名下载即可:
2.配置SSL:
将*.pfx 文件放到项目得resources目录下,并再yml文件中配置:
server:
port: 443
ssl:
key-store: classpath:证书文件名.pfx
key-store-password: 密码
key-store-type: PKCS12
然后在*Application启动类中加入如下代码:
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
return tomcat;
}
private Connector initiateHttpConnector() {
Connector connector = new Connector(“org.apache.coyote.http11.Http11NioProtocol”);
connector.setScheme(“http”);
connector.setPort(80);
connector.setRedirectPort(443);
connector.setSecure(false);
return connector;
}
最后一步,在pom.xml 加入(此处必须添加否则启动报错):
启动服务器出现如下log说明配置成功:
2019-02-14 14:45:29 [main] INFO org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer - Tomcat started on port(s): 443 (https) 80 (http)
2019-02-14 14:45:29 [main] INFO org.springframework.cloud.netflix.eureka.serviceregistry.EurekaAutoServiceRegistration - Updating port to 443
2019-02-14 14:45:29 [main] INFO com.gateway.GateWayApplication - Started GateWayApplication in 22.345 seconds (JVM running for 23.431)