美文网首页
spring-cloud-gateway使用https注意事项-

spring-cloud-gateway使用https注意事项-

作者: wangpeng123 | 来源:发表于2018-06-13 16:06 被阅读0次

由于gateway可以对标nginx,所以在生产环境可能需要使用https,以前的做法是使用nginx来配置ssl证书,现在需要把证书放到gateway里边。
由于gateway依赖springboot,所以直接使用springboot的配置就可以,具体配置如下:

server:
  port: 8089
  ssl:
    key-store: classpath:springboot.jks
    key-password: springboot
    key-store-type: JKS
    key-alias: 1

但是在ribbon转发的时候遇到个异常:
No subject alternative names matching IP address XXX found
发现是由于服务节点设置了使用ip注册
eureka.instance.prefer-ip-address=true

问题原因:
在发送https的时候会检查ip的主机名,由于设置了使用ip注册所以获取不到主机名,导致该异常出现,去掉就可以使用了,前提是机器间使用主机名可以ping通

private static void matchIP(String var0, X509Certificate var1) throws CertificateException {
        Collection var2 = var1.getSubjectAlternativeNames();
        if(var2 == null) {
            throw new CertificateException("No subject alternative names present");
        } else {
            Iterator var3 = var2.iterator();

            while(var3.hasNext()) {
                List var4 = (List)var3.next();
                if(((Integer)var4.get(0)).intValue() == 7) {
                    String var5 = (String)var4.get(1);
                    if(var0.equalsIgnoreCase(var5)) {
                        return;
                    }

                    try {
                        if(InetAddress.getByName(var0).equals(InetAddress.getByName(var5))) {
                            return;
                        }
                    } catch (UnknownHostException var7) {
                        ;
                    } catch (SecurityException var8) {
                        ;
                    }
                }
            }

            throw new CertificateException("No subject alternative names matching IP address " + var0 + " found");
        }
    }

相关文章

网友评论

      本文标题:spring-cloud-gateway使用https注意事项-

      本文链接:https://www.haomeiwen.com/subject/kigjeftx.html