SpringCloud Gateway网关同时支持http和https访问

利用KeyTool生成keystore

keytool -genkey -alias sslkey RSA -validity 365 -keystore sslkey.keystore

其中,
-validity后面为证书有效天数;
-alias后面是证书别名;
-keystore后面是证书存放位置;
过程中会要求输入 姓氏、组织单位名称、组织名称、城市或区域名称、省市、国家、地区代码、密钥口令;
确认正确输入y,回车,把生成的证书放到项目的resources目录下。

开启SSL验证

#http端口
http:
  port: 8082
server:
  port: 8083
  ssl:
    enabled: true
    key-store: classpath:server.keystore
    key-alias: pmsKey
    key-store-type: JKS
    key-password: 123456

配置允许http请求

@Configuration
public class GateWayConfig {

    @Value("${http.port}")
    private int httpPort;

    @Autowired
    private HttpHandler httpHandler;

    private WebServer webServer;

    @PostConstruct
    public void start() {
        NettyReactiveWebServerFactory factory = new NettyReactiveWebServerFactory(httpPort);
        webServer = factory.getWebServer(httpHandler);
        webServer.start();
    }

    @PreDestroy
    public void stop() {
        webServer.stop();
    }

}

如果是https请求,访问8083端口,如果是http请求,访问8082端口即可。


版权声明:本文为u013998466原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。