spring cloud zuul 配置https

1.获取阿里云免费证书:阿里云免费证书藏得比较深,要按套路出牌才能找到:

进入阿里云证书购买界面:选择品牌-Symantec,证书类型选择-增强型 OV SSL,就会出现以下界面,然后点击购买绑定域名下载即可:
spring cloud zuul 配置https

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 加入(此处必须添加否则启动报错):

spring cloud zuul 配置https

启动服务器出现如下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)