使用 Google App Engine 时 SSL 证书无效和/或丢失
Posted
技术标签:
【中文标题】使用 Google App Engine 时 SSL 证书无效和/或丢失【英文标题】:Invalid and/or missing SSL certificate when using Google App Engine 【发布时间】:2014-07-29 03:45:08 【问题描述】:更新:如果有人可以提供帮助,请:Google 正在等待他们的错误跟踪工具上有关此问题的输入和示例。如果您对此问题有可重现的步骤,请分享到:https://code.google.com/p/googleappengine/issues/detail?id=10937
我正在尝试使用 Google App Engine 后端从 StackExchange API 获取数据。您可能知道,StackExchange 的一些 API 是特定于站点的,要求开发人员针对用户注册的每个站点运行查询。
所以,这是我从这些网站获取时间线数据的后端代码。 feed_info_site
变量保存 StackExchange 站点名称(例如 'security'
、'serverfault'
等)。
data = json.loads(urllib.urlopen("%sme/timeline?%s" %
(self.API_BASE_URL, urllib.urlencode("pagesize": 100,
"fromdate": se_since_timestamp, "filter": "!9WWBR
(nmw", "site": feed_info_site, "access_token":
decrypt(self.API_ACCESS_TOKEN_SECRET, self.access_token), "key":
self.API_APP_KEY))).read())
for item in data['items']:
... # code for parsing timeline items
在除 Stack Overflow 之外的所有站点上运行此查询时,一切正常。奇怪的是,当 feed_info_site
变量设置为 '***'
时,我从 Google App Engine 收到以下错误:
HTTPException: Invalid and/or missing SSL certificate for URL:
https://api.stackexchange.com/2.2/me/timeline?
filter=%219WWBR%28nmw&access_token=
<ACCESS_TOKEN_REMOVED>&fromdate=1&pagesize=100&key=
<API_KEY_REMOVED>&site=***
当然,如果我在 Safari 中运行相同的查询,我会从 API 中得到我期望的 JSON 结果。所以问题出在 Google 的 URLfetch 服务上。我在 Stack Overflow 上发现了几个与类似 HTTPS/SSL 异常相关的主题,但没有接受的答案解决了我的问题。我尝试删除 cacerts.txt
文件。我也尝试使用validate_certificate=False
拨打电话,但没有成功。
我认为这个问题与 HTTPS/SSL 没有严格的关系。如果是这样,您如何解释更改单个 API 参数会导致请求失败?
【问题讨论】:
自 v1.9.7 以来可能已由 Google 修复,但我必须检查它。 code.google.com/p/googleappengine/issues/detail?id=10937 我有一个非常相似的问题,但是当访问browserid.org/verify 任何有反馈的人时,将不胜感激!很高兴知道如何在不禁用 SSL 证书的情况下执行此操作。 好吧,我的特殊问题通过将 browserid.org/verify 替换为 verifier.login.persona.org/verify 得到了解决 想知道您是否已经在响应标头中查找过任何内容。 您还在直接使用urllib.open
还是urlfetch.fetch
API?我遇到过这样的情况,urlfetch
一定在幕后做了一些额外的魔法,因为它起作用了,而 urllib
没有。
【参考方案1】:
-
等待应用引擎的下一次更新(计划很快更新)然后更新。
将 browserid.org/verify 替换为另一个服务(verifier.loogin.persona.org/verify 是 Mozilla 托管的一个很好的服务,可以使用)
确保 cacerts.txt 不存在(看起来您已经排序,但以防万一:-))
再试一次
祝你好运!
-布伦丹
【讨论】:
【参考方案2】:我遇到了同样的错误,谷歌现在已经更新了应用引擎,错误已解决,请查看更新的文档。
【讨论】:
请提供相关链接或更多信息。现在你的回答对新访问者不是很有帮助。以上是关于使用 Google App Engine 时 SSL 证书无效和/或丢失的主要内容,如果未能解决你的问题,请参考以下文章
在 Google-App-Engine 中使用 HSQLDB
使用 Google App Engine 时 SSL 证书无效和/或丢失
使用 Google App Engine 时无法导入 Flask
建立数据库连接时出错:Google App Engine Deploy
使用 Google App Engine 时可以对模式进行文本搜索吗?
在 App Engine Standard python 中使用 Google Stackdriver Logging 时出错