Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Https “如何禁用”;defaultHostnameVerifier";SpringXD中的属性_Https_Ssl Certificate_Spring Xd - Fatal编程技术网

Https “如何禁用”;defaultHostnameVerifier";SpringXD中的属性

Https “如何禁用”;defaultHostnameVerifier";SpringXD中的属性,https,ssl-certificate,spring-xd,Https,Ssl Certificate,Spring Xd,我需要在将消息放在Q上时从处理器模块连接到https URL(假设这里的Q名称是:readFromQ),然后只记录URL GET调用的响应。我正在使用http客户端处理器对此处的url进行GET调用。 我的流如下所示: 流创建--名称hitSSL--定义“jms--目的地=readFromQ| http客户端--url=” --httpMethod=GET | log“ 现在的问题是,这个URL向SpringXD提供了一个证书,该证书与我试图访问的主机名不匹配。证书的名称类似于abc.mycom

我需要在将消息放在Q上时从处理器模块连接到https URL(假设这里的Q名称是:readFromQ),然后只记录URL GET调用的响应。我正在使用http客户端处理器对此处的url进行GET调用。 我的流如下所示:

流创建--名称hitSSL--定义“jms--目的地=readFromQ| http客户端--url=” --httpMethod=GET | log“

现在的问题是,这个URL向SpringXD提供了一个证书,该证书与我试图访问的主机名不匹配。证书的名称类似于abc.mycompany.com,而URL的主机名是remoteHost

Spring XD抛出: java.security.cert.CertificateException:找不到与remoteHost匹配的名称

我的证书确实添加了abc.mycompany.com证书

我需要知道是否有一种方法可以在建立SSL连接时禁止SpringXD使用CN验证主机名。 有没有办法禁用java属性javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier


注意:我可以使用“http”成功获取上述URL

我可以覆盖主机名验证。感谢我的团队中的人

我更新了xd admin和xd container脚本,使其具有:

DEFAULT\u JVM\u OPTS=“-javaagent:/opt/spring-xd-1.1.0.M1/xd/lib/HostnameVerifier.jar

此HostnameVerifier.jar是一个javaagent,它覆盖setDefaultHostnameVerifier属性中的verify方法,如下所示:

HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier()
    {
      public boolean verify(String s, SSLSession sslSession)
      {
        return true;
      }
    }
现在SpringXD不会抱怨要连接的主机和证书中的服务器名称不匹配