【问题标题】:Disable hostname checking for SSL connections?禁用 SSL 连接的主机名检查?
【发布时间】:2010-09-09 09:36:44
【问题描述】:

我正在使用 clojure-http 进行以下 POST:

(clojure-http.resourcefully/post "https://android.apis.google.com/c2dm/send"
  {"Authorization" (str "GoogleLogin auth=" auth-token)}
  {"registration_id" registration-id
   "data.msg" "blah"
   "collapse_key" "blah"})

得到这个异常:

java.security.cert.CertificateException: No subject alternative DNS name matching android.apis.google.com found.
[Thrown class javax.net.ssl.SSLHandshakeException]

由于某种奇怪的原因,大约 10% 的时间我没有得到异常并且请求通过。

我认为这是 Java 的主机名检查 SSL 连接的问题*,所以我的问题是,如何从 Clojure 禁用它? (或者在安全方面这是一个坏主意?)

谢谢, 魏

*从这篇文章和其他类似的帖子中推断出来:http://www.jroller.com/hasant/entry/no_subject_alternative_names_matching

【问题讨论】:

    标签: java http ssl https clojure


    【解决方案1】:

    不是你的代码有问题,是安卓网站的问题。

    在现代浏览器中打开此链接 - https://android.apis.google.com/。您将看到 SSL 证书属于 *.google.com,但您正在访问 *.apis.google.com 下的域。您可能应该在 Android 论坛上搜索此问题的解决方案。

    禁用主机名检查是个坏主意,您正在向中间人攻​​击敞开大门。如果你真的不关心安全性,你还不如使用 http,它比禁用主机名检查更容易。

    【讨论】:

    • 谢谢!没有意识到我可以(现在)只使用http。我打算在 Android 邮件列表上留言,要求他们修复 SSL 证书。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    相关资源
    最近更新 更多