- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 AppEngine 开发人员应用服务器中,我收到如下错误:
SSLCertificateError: Invalid and/or missing SSL certificate for URL ...
https
端口转发到虚拟机)对
localhost
服务器进行这样的提取时:
result = urlfetch.fetch(url=url, method=method, payload=payload,
deadline=DEADLINE, validate_certificate=None)
validate_certificate
是
False
的无效证书的SSL失败,尽管这很可能是Python中2.7.9策略始终验证ssl证书的副作用。
False
传递
None
(而不是
validate_certificate
)也不起作用。
app-engine-python/lib/cacerts/cacerts.txt
和/或./lib/cacerts/urlfetch_cacerts.txt
(尽管这可能需要打开验证才能工作,因为这似乎是使用它们的唯一情况),例如$ echo >> /usr/local/share/app-engine-python/lib/cacerts/urlfetch_cacerts.txt
$ openssl x509 -subject -in server.crt >> /usr/local/share/app-engine-python/lib/cacerts/urlfetch_cacerts.txt
ssl._create_default_https_context = ssl._create_unverified_context
import ssl
google/appengine/dist27/python_std_lib/httplib.py
(第1149行附近)或之后
/System/Library/OpenSSL
中,它受
SIP/rootlessness保护,坦率地说,这很麻烦,如果可以的话,这是一个值得保留的功能。
openssl s_client -connect localhost:7500 -CAfile server.pem
验证了证书是否有效。
/usr/local/etc/openssl/certs
中,格式为
hash.#
,其中散列来自
openssl x509 -subject_hash -in server.pem
(或自制 ssl,即
/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl
)。在这种情况下,
/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl s_client -connect localhost:7500
会验证证书(但 python 仍然不会)。
./pve/bin/python -c "import requests; requests.get('https://localhost:7500')"
SSL_CERT_FILE
设置为服务器的证书(即,由于
openssl
命令基本上是这样工作的,因此可能会期望它起作用),这也会失败,并且在
SSL_CERT_PATH
设置为
/usr/local/etc/openssl/certs
的情况下也会失败。
pve
是一个虚拟环境,其中
help(ssl)
显示
FILE
的
/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py
_ssl.so
链接到自制的 openssl 我跑了:
./Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_ssl.so:
/usr/local/opt/openssl/lib/libssl.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)
brew info openssl
,它会在
CAVEATS
下注释:
A CA file has been bootstrapped using certificates from the system keychain. To add additional certificates, place .pem files in /usr/local/etc/openssl/certs
.pem
和
.p12
格式,“始终信任”为
Secure Sockets Layer (SSL)
)。
最佳答案
这是一个 dev_appserver
由 httplib.HTTPSConnection
引起的错误某些最近的 Python 版本(我相信 2.7.9)中的行为更改(默认情况下启用证书检查)。
由于错误在内部 dev_appserver
代码(appengine SDK 的文件 google_appengine/google/appengine/api/urlfetch_stub.py
)独立于测试的应用程序运行,没有办法进行修复,使其在 SDK 更新后仍然有效。
我能想到的唯一永久解决方法是启用 validate_certificate
并添加 CA 证书给 urlfetch_cacerts.txt
文件。作为临时修复,您可以修补 urlfetch_stub.py
解决方法#3。
关于python - AppEngine urlfetch validate_certificate=False/None 不被尊重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28866770/
我正在尝试将gradle appengine plugin与我的项目一起使用,但SDK的软件包未得到解决。 我在网上看到很多Maven资料库的引用资料:com.google.appengine:app
我对 gradle 概念很陌生。我正在为应用程序引擎做 gradle (我不知道 maven 或 ant),我经历了 [https://cloud.google.com/appengine/docs/
我使用 maven 3.3.9 使用命令 mvn archetype:generate 创建了一个项目,然后搜索端点 archtype 并选择它,然后插入 groupid artifectId 版本.
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: How to implement “autoincrement” on Google AppEngine 我在 Ap
对于我的小框架 Pyxer我希望也能够在 AppEngine 项目之外使用 Google AppEngine 数据存储,因为我现在已经习惯了这种 ORM 模式,对于一些快速的破解来说,这很好。由于文件
我正在尝试 GAE Java 灵活环境并在我的构建脚本中使用“com.google.appengine:gradle-appengine-plugin:gradle-appengine-plugin”
我是 GAE 的大菜鸟,Python 水平中等,Java 中等至生疏。我希望将现有的可用 GAE Java 应用程序(在 Google Play 商店中并在 Android 上运行)转换为 GAE P
我的 AppEngine Java8 应用程序缺少 appengine-api-1.0-sdk-1.9.77.jar。无论我调用什么 servlet,我都会收到此错误 java.lang.NoClas
我正在尝试在请求中获取地区和国家。我认为可以在对 AppEngine 的每个请求中获取 X-AppEngine-Region 和 X-AppEngine-Country header ,但它们丢失了。
我们正在从非官方的“kidleit”maven 插件切换为使用官方的“appengine-maven-plugin”http://code.google.com/p/appengine-maven-p
我正在构建一个 Maven 应用程序,我想将其部署在 Java 的 Google 应用程序引擎上。 我尝试在本地服务器中进行测试 localhost:8080 当我运行命令mvn clean pack
如何在 AppEngine 中使用 X-AppEngine-Estimated-CPM-US-Dollars header 。我读了一些文档,我们可以只使用管理员凭据来使用它,这是什么意思? 如果您有
当我尝试使用 appengine-maven-plugin 更新 appengine-application 时出现以下错误: 400 Bad Request Error when loading a
当我尝试在 AppEngine 中使用低级 DataStore API 时,我收到了一个有趣的 ClassNotFoundException。此异常发生在云服务器中,而不是本地实例中。我在本地使用 a
我在尝试运行我的应用程序时遇到以下错误 from oauth2client.appengine import oauth2decorator_from_clientsecrets ImportErro
情况 我正在使用 AppEngine Cloud Endpoints (Java)作为我的 Android 应用程序的后端服务器。在 Cron-Job 中,服务器定期下载新数据(字符串),过滤掉相关信
我有一个多模块 Maven java 项目。在父 pom 中: core batch-worker be scheduler migrations migr
我们正在尝试从 oauth2client 导入 AppAssertionCredentials。我们正在使用 python27 标准谷歌应用程序引擎。 我们的appengine_config.py如下
有什么区别mvn appengine:更新和Google App Engine 中的 mvn appengine:deploy。 最佳答案 这取决于您为项目使用的配置。 old AppEngine p
从语义上讲,api 和ext 指的是什么意思?例如,为什么 taskqueue 属于 api 而 db 属于 ext? 最佳答案 API = 应用程序编程接口(interface)。 所以我们通过它的
我是一名优秀的程序员,十分优秀!