Grails rest插件SSLexception域名比较(域名/ip地址)

Grails rest插件SSLexception域名比较(域名/ip地址),rest,grails,ssl,httpclient,ssl-certificate,Rest,Grails,Ssl,Httpclient,Ssl Certificate,我犯了一个奇怪的错误。这个错误以前肯定见过。然而,请注意(至少对我来说)这其中独特的部分是它在抱怨: <testapi.multisafepay.com/213.189.1.163> 这与我遇到的所有类似问题都不同,这些问题表明它只是比较了一个ip地址和证书的域名 javax.net.ssl.SSLException: hostname in certificate didn't match: <testapi.multisafepay.com/213.189.1.163

我犯了一个奇怪的错误。这个错误以前肯定见过。然而,请注意(至少对我来说)这其中独特的部分是它在抱怨:

<testapi.multisafepay.com/213.189.1.163>

这与我遇到的所有类似问题都不同,这些问题表明它只是比较了一个ip地址和证书的域名

javax.net.ssl.SSLException: hostname in certificate didn't match: <testapi.multisafepay.com/213.189.1.163> != <testapi.multisafepay.com> OR <www.testapi.multisafepay.com> OR <testapi.multisafepay.com>
javax.net.ssl.SSLException:证书中的主机名不匹配:!=或
上下文是一个Grails1.3.7应用程序,其“rest”插件版本为0.6.1


在禁用或不禁用ssl域验证的情况下,我有哪些选项?

这很可能是影响您所做工作的代码。它来自rest插件0.7,SimpleHttpBuildersLhelper类

if (sslSocketFactory) {
    // Set the hostname verifier for the trusted certificates...
    if (config?.https?.cert?.hostnameVerifier) {
      switch (config.https.cert.hostnameVerifier.toUpperCase()) {
        case CERT_HOSTNAME_VERIFIER_STRICT:
          sslSocketFactory.hostnameVerifier = SSLSocketFactory.STRICT_HOSTNAME_VERIFIER
          break;
        case CERT_HOSTNAME_VERIFIER_ALLOW_ALL:
          sslSocketFactory.hostnameVerifier = SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER
          break;
        case CERT_HOSTNAME_VERIFIER_BROWSER_COMPATIBLE:
          sslSocketFactory.hostnameVerifier = SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER
          break;
        default:
          throw new IllegalArgumentException(
                  "The https.cert.hostnameVerifier doesn't match any of the following ${CERT_HOSTNAME_VERIFIERS.join(', ')}")

      }
    }

以下是您拥有的各种主机名验证选项。

只是想澄清一下,您是想通过IP地址还是主机名进行连接?
testapi.multisafepay.com/213.189.1.163
来自哪里?(有没有可能看到哪个类抛出此异常和/或堆栈跟踪的更多部分?)