在django应用程序中拒绝访问Windows证书存储区

时间:2015-11-17 12:35:51

标签: django ssl windows-server-2012 access-denied certificate-store

我到处搜索,但似乎只是我的问题或其他所有使用旁路的人我都不想要。 因此,我正在获取Windows证书存储区的拒绝访问权限。当我从python cmd访问时一切正常。我在IIS中的站点设置为管理员凭据,应用程序目录也具有管理员权限。 堆栈上有类似的问题,我已经调查了它,但我的情况似乎有所不同,我不想出于明显的原因使用未验证的上下文。

我被困住了,不知道发生了什么。有什么帮助吗?

(Windows server 2012 r2,django 1.8,python 2.7.9,IIS 8.5)

conn = httplib.HTTPSConnection(PAYPAL_LIVE_HOST, context=ssl._create_default_https_context())

    Traceback (most recent call last):
  File "c:\Python27\lib\site-packages\django\core\handlers\base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "c:\Python27\lib\site-packages\django\contrib\auth\decorators.py", line 22, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "C:\inetpub\vhosts\sgtmarkets.com\rails\SGTMarketsBO\website\views\finance\deposit.py", line 77, in paypal
    conn = httplib.HTTPSConnection(PAYPAL_LIVE_HOST, context=ssl._create_default_https_context())
  File "c:\Python27\lib\ssl.py", line 427, in create_default_context
    context.load_default_certs(purpose)
  File "c:\Python27\lib\ssl.py", line 378, in load_default_certs
    self._load_windows_store_certs(storename, purpose)
  File "c:\Python27\lib\ssl.py", line 365, in _load_windows_store_certs
    for cert, encoding, trust in enum_certificates(storename):
WindowsError: [Error 5] Access is denied

2 个答案:

答案 0 :(得分:3)

我知道这是一篇旧帖子,但我能够通过转到IIS中的应用程序池,选择运行我的Django应用程序的应用程序池,转到高级设置,单击ApplicationPoolIdentity旁边的三个点按钮来解决这个问题。 (至少那是我默认的内置帐户),然后将其更改为NetworkService帐户。

答案 1 :(得分:0)

我遇到了同样的问题,并使用“请求”模块而不是“ httplib”解决了它