我想使用Django构建一个简单的Web应用程序。我希望使用Mozilla Persona进行验证的最小用户模型。使用Persona可以顺利地进行,直到SSL证书在将认证(成功或失败)扔回Django应用程序时失败。SSL证书使用Django和Mozilla验证失败
我知道Stack Overflow上有很多关于SSL错误的内容,但是我还没有发现任何在这种情况下可用的东西。例如,在使用requests
软件包时尝试使用verify = False
仍会产生错误。
我能够使用新的Django项目的默认设置并遵循django_browserid
的样板安装,在最小示例应用程序中复制错误。即使这可能被黑客入侵,如果有人知道如何补救这个令人讨厌的错误,那么在django_browserid
文档或Persona文档中可能值得注意。
我已经把这个小例子,有说明书上GitHub.com在:
https://github.com/pedmiston/ssl_error
实际的错误是,与[BLOB]取代到位断言。
Error while verifying assertion [blob] with audience http://localhost:8000.
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
我在OSX小牛队。
更新:我能得到的最少例如使用sigmavirus24的答案传递,通过添加以下到我的virtualenv的src/django_browserid/base.py
class RemoteVerifier(object):
"""
Verifies BrowserID assertions using a remote verification service.
By default, this uses the Mozilla Persona service for remote verification.
"""
verification_service_url = 'https://verifier.login.persona.org/verify'
requests_parameters = {
'timeout': 5,
'verify': False,
}
# ...
这是伟大的,它得到最小的例子传递(并保证我这不是真的django_browserid或Persona错误?)。
但是,它只是绕过验证程序的优点。现在这个错误已经被本地化,如何解决它的任何建议?
我一直在读,当小牛出现时,在从open_ssl切换到Apple自己的安全传输引擎时,OS X发生了一些变化。如果这是我遇到的问题的原因,那么在使用小牛时遇到类似问题的其他人可能值得了解。
谢谢sigmavirus24。我更新了我的答案,以表明您正确地假设我没有正确传递verify = False参数。但是,我移动了一些门柱:有没有可能帮助我在不绕过验证过程的情况下登录? – pedmiston 2014-09-13 13:51:19
@pedmiston移动球门柱是不允许的。你应该用你的*新问题开一个不同的问题。此外,我的建议并不是修改图书馆的来源,而是改变对图书馆的使用,因为这看起来有可能做到。 – 2014-09-13 14:02:09
根据您的要求:http://stackoverflow.com/questions/25835554/ssl-certificate-verification-failure-in-python-on-mavericks – pedmiston 2014-09-14 16:40:50