我在Google App Engine上的自定义域上有一个应用程序,我需要捕获JSON包。
我正在使用http://www.hurl.it/进行测试,其网址如下:https://subdomain.website.net.au/folder/
这会产生服务器错误,但是如果我删除S并且只使用HTTP,则请求正常。为了实现这一目标,Google需要什么?
更新
使用Curl并运行以下命令:
curl --verbose --data "@json.txt" --header "Content-Type:application/json" "https://subdomain.website.net.au/folder/"
我收到错误:“无法获得本地颁发者证书”
当我从http://curl.haxx.se/ca/cacert.pem下载证书文件并运行:
时curl --verbose --cacert "cacert.pem" --data "@json.txt" --header "Content-Type:application/json" "https://subdomain.website.net.au/folder/"
它正常工作并且符合预期。这是否意味着问题与hurl.it?如果是这样,究竟是什么问题,我有一个客户试图向我发送数据,但它也无法正常工作。
UPDATE2:
答案 0 :(得分:0)
有一篇文章介绍了如何在developers.google.com上为自定义域设置SSL。
基本上你需要两件事:
您的证书,您的Google Apps域以及使用App Engine的证书将花费您的费用。如果您可以使用YOURAPPID.appspot.com域,则可以免费获得SSL。如果您需要自定义域名,我推荐以上网站。
更新问题后: 看起来证书颁发机构(CA)对客户端是未知的或不可信的。这可以通过使用来自thawte或verisign的商业证书来解决。或者,您可以将CA证书添加到操作系统或客户端应用程序的证书存储中。 换句话说:在您的操作系统或应用程序中将CA证书安装为受信任的根证书。应该这样做。
哦,你的假设是正确的。 hurl.it不知道CA,因此拒绝您的证书作为无效或未知的发行人。
更新2: Craig,你的GeoTrust证书应该没问题。请尝试以下方法:
请验证您是否可以使用普通网络浏览器访问此应用或您应用托管的任何其他网页。它不应该抱怨证书。如果确实如此,并且您需要为证书添加例外规则,那么配置仍然是错误的。
我有一段时间没有这样做,但上次我使用SSL证书时,我以某种方式连接了实际证书和CA,我确信有这方面的教程。因为找不到CA.cert,所以以这种方式提供它是有意义的。
来自developers.google.com: '证书文件最多可包含五个证书;这个号码包括链式和中级证书。'
因为当您手动提供CA时,它会与curl一起使用,这是客户上传数据的临时解决方案。
这是我可以给你的所有信息,而无需查看你的实际设置。我的建议是摆弄客户和证书,因为这肯定是这个问题的所在。它与JSON数据无关。