栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Java API的S3 / AWS的SSL问题:“证书中的主机名不匹配”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Java API的S3 / AWS的SSL问题:“证书中的主机名不匹配”

亚马逊发布了1.3.22版本,此版本解决了此问题。我已验证我们的代码现在可以正常工作了。引用其发行说明:

现在可以通过HTTPS再次正确寻址名称包含句点的存储桶。

除了等待亚马逊发布新的API之外,我还可以看到几种解决方案。

  1. 显然,您可以回滚到AWS Java SDK的1.3.20版本。不幸的是,我需要1.3.21中的某些功能。

  2. 您可以

    org.apache.http.conn.ssl.StrictHostnameVerifier
    在类路径中替换。但是,这是一个 hack ,它将删除我认为对Apache http连接的所有SSL检查。这是对我有用的代码:http : //pastebin.com/bvFELdJE

  3. 我最终从AWS源jar下载并构建自己的软件包。我对

    HttpClientFactory
    源应用了以下近似补丁。

    ===================================================================

    — src/main/java/com/amazonaws/http/HttpClientFactory.java (thirdparty/aws) (revision 20105)
    +++ src/main/java/com/amazonaws/http/HttpClientFactory.java (thirdparty/aws) (working copy)
    @@ -93,7 +93,7 @@

             SSLSocketFactory sf = new SSLSocketFactory(      SSLContext.getDefault(),
    • SSLSocketFactory.STRICT_HOSTNAME_VERIFIER);
    • SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
  4. 正确的解决方法是将域名存储桶处理更改为基于路径的处理。

顺便说一句,下面的内容似乎可行,但 无效 。AWS客户端专门请求

STRICT
验证者,并且不使用默认验证者:

SSLSocketFactory.getSystemSocketFactory().setHostnameVerifier(    SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414182.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号