我想使用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