使用SSL时HttpClient和HttpsURLConnection返回不同的证书

J2K

我正在使用模数.io托管我的应用程序。他们允许SSL在其通配符* .onmoulus.net证书上搭载,也可以使用自己的特定于自定义域的证书。我一直在使用他们的证书,并使用运行良好的AndroidHttpClient实例连接到https://myapp.onmodulus.net,但尝试在我自己的自定义域名上使用ssl时遇到了一些问题。

我已经为我的域购买并安装了thawte的证书,当我使用浏览器进行连接时,一切都很好。我看到小锁图标,当我检查正在使用的证书时是我的解冻证书,而不是* .onmodulus.net证书。在安装我自己的证书之前,它显示“此连接不受信任”警告,并且我可以看到正在使用* .onmodulus.net证书。

但是,当我尝试在android应用中进行连接时,我获得的成功较少。当打开一个网址并像这样管理httpsURLConnection时:

URL myURL = new URL("https://www.myapp.com");
HttpsURLConnection myConnection = (HttpsURLConnection) myURL.openConnection();
try {
  System.out.println("Response Code : " + myConnection.getResponseCode());

  Certificate[] certs = myConnection.getServerCertificates();
  for(Certificate cert : certs){
    System.out.println("Cert Details: " + cert.toString());
  }

一切顺利,站点正确响应,并显示我的thawte证书,仅使用了我的thawte证书。* .onmodulus.net证书根本不显示。但是,当我尝试使用DefaultHttpClient这样连接时:

DefaultHttpClient myClient = new DefaultHttpClient();
HttpGet getRequest = new HttpGet("https://www.myapp.com");
HttpResponse rawResponse = myClient.execute(getRequest);

我得到:

javax.net.ssl.SSLException: hostname in certificate didn't match: <www.myapp.com> != <*.onmodulus.net> OR <*.onmodulus.net> OR <onmodulus.net>

我不确定如何更仔细地检查证书,但现在似乎正在使用通配符* .onmodulus.net证书,而不是我的thawte证书,我也不知道为什么。我已经使用HttpClient实例编写了我的应用程序,因此实际上更希望能够以这种方式进行连接,而不是尽可能使用第一种解决方案。

坏峡谷

模数自定义域SSL需要SNI支持。根据这些文档,看来只有HttpsURLConnection对象支持与SNI的连接发生的事情是DefaultHTTPClient正在连接,但是由于它未提供服务器名称,因此Modulus默认返回* .onmodulus.net通配符证书。

免责声明:我为Modulus工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java 和 HttpsUrlConnection 忽略 ssl 证书

来自分类Dev

使用https URL时,HttpsURLConnection有效,但HttpClient无效

来自分类Dev

使用不同的ISP访问同一资源时如何接收不同的SSL证书?

来自分类Dev

如何使用HttpClient的在使用SSL证书,无论多么“糟糕”是

来自分类Dev

开发时避免使用SSL证书

来自分类Dev

用于内部和外部使用的SSL证书

来自分类Dev

通过Boxfuse部署到AWS时,是否可以使用单独的生产和暂存SSL证书?

来自分类Dev

通过Boxfuse部署到AWS时,是否可以使用单独的生产和暂存SSL证书?

来自分类Dev

为什么Java的HttpsURLConnection和curl的HEAD请求返回不同的标头?

来自分类Dev

SSL证书和链接

来自分类Dev

Nginx和SSL证书

来自分类Dev

签名证书和SSL

来自分类Dev

HTTPS和SSL证书

来自分类Dev

Chrome使用与Visual Studio不同的localhost SSL证书

来自分类Dev

密钥库中的SSL证书和浏览器证书不同

来自分类Dev

SSL证书错误:在我的Laravel网站上使用Twilio时,证书链中的自签名证书

来自分类Dev

不同端口中的SSL证书

来自分类Dev

在openSUSE上使用Git时无法使用SSL证书

来自分类Dev

SSL证书是否针对该服务(例如,服务器对HTTPS使用的证书与对SMTP / TLS使用不同的证书)

来自分类常见问题

忽略Apache HttpClient 4.3中的SSL证书

来自分类Dev

在Java中使用自签名证书时SSL如何工作

来自分类Dev

假装使用SSL证书

来自分类Dev

ssl:将私钥与证书匹配| 使用php和phpseclib

来自分类Dev

在Swift中使用NSURLConnection和有效的SSL证书

来自分类Dev

使用自签名证书和CA的Android SSL HTTP请求

来自分类Dev

SSL证书使用Django和Mozilla Persona验证失败

来自分类Dev

使用Hibernate,Spring和JDBC配置SSL证书

来自分类Dev

结合使用Checkpoint VPN SSL Network Extender CLI和证书

来自分类Dev

使用 Google Ingress 和托管证书进行 SSL 重定向

Related 相关文章

  1. 1

    Java 和 HttpsUrlConnection 忽略 ssl 证书

  2. 2

    使用https URL时,HttpsURLConnection有效,但HttpClient无效

  3. 3

    使用不同的ISP访问同一资源时如何接收不同的SSL证书?

  4. 4

    如何使用HttpClient的在使用SSL证书,无论多么“糟糕”是

  5. 5

    开发时避免使用SSL证书

  6. 6

    用于内部和外部使用的SSL证书

  7. 7

    通过Boxfuse部署到AWS时,是否可以使用单独的生产和暂存SSL证书?

  8. 8

    通过Boxfuse部署到AWS时,是否可以使用单独的生产和暂存SSL证书?

  9. 9

    为什么Java的HttpsURLConnection和curl的HEAD请求返回不同的标头?

  10. 10

    SSL证书和链接

  11. 11

    Nginx和SSL证书

  12. 12

    签名证书和SSL

  13. 13

    HTTPS和SSL证书

  14. 14

    Chrome使用与Visual Studio不同的localhost SSL证书

  15. 15

    密钥库中的SSL证书和浏览器证书不同

  16. 16

    SSL证书错误:在我的Laravel网站上使用Twilio时,证书链中的自签名证书

  17. 17

    不同端口中的SSL证书

  18. 18

    在openSUSE上使用Git时无法使用SSL证书

  19. 19

    SSL证书是否针对该服务(例如,服务器对HTTPS使用的证书与对SMTP / TLS使用不同的证书)

  20. 20

    忽略Apache HttpClient 4.3中的SSL证书

  21. 21

    在Java中使用自签名证书时SSL如何工作

  22. 22

    假装使用SSL证书

  23. 23

    ssl:将私钥与证书匹配| 使用php和phpseclib

  24. 24

    在Swift中使用NSURLConnection和有效的SSL证书

  25. 25

    使用自签名证书和CA的Android SSL HTTP请求

  26. 26

    SSL证书使用Django和Mozilla Persona验证失败

  27. 27

    使用Hibernate,Spring和JDBC配置SSL证书

  28. 28

    结合使用Checkpoint VPN SSL Network Extender CLI和证书

  29. 29

    使用 Google Ingress 和托管证书进行 SSL 重定向

热门标签

归档