禁用SSL连接的主机名检查?
问题描述:
我使用Clojure的-HTTP做出以下POST:禁用SSL连接的主机名检查?
(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
答
它不是一个问题,你的代码,它的一个问题与Android的网站。
在现代浏览器中打开此链接 - https://android.apis.google.com/。您将看到SSL证书属于*.google.com
,但您正在访问的域名是。您应该可以在Android论坛上搜索解决此问题的解决方案。
这是一个坏主意,禁用主机名检查,你开放自己的人在中间的攻击。如果你真的不关心安全性,那么你不妨使用http,这比禁用主机名检查更容易。
谢谢!没有意识到我可以通过(现在)只使用http。我打算在Android邮件列表上留言,要求他们修正他们的SSL证书。 – yayitswei 2010-09-09 20:31:05