Apache无权访问Cert文件

时间:2014-12-27 04:57:07

标签: python apache ssl

我正在尝试发送Apple推送通知。我可以从Python shell发送它:

import apns
ns=apns.APNs(use_sandbox=True, cert_file="certs/C.pem", key_file="certs/C.pem")
ns.gateway_server.send_notification('TOKEN', apns.Payload(alert='hi'))

然而,当我尝试从网络服务器发送它时,如果我在一个无法访问我的certs目录的文件夹中,我会得到同样的错误:

ssl.SSLError: [Errno 336265218] _ssl.c:356: error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib

我的apache.conf文件中有主项目文件夹:

<Directory /home/ubuntu/MyProject/Django/MyProject>
   <Files *>
  Order allow,deny
  Allow from all
  Require all granted
   </Files>
</Directory>

cert文件夹位于/home/ubuntu/MyProject/Django/MyProject/certs。我如何让apache访问它?

1 个答案:

答案 0 :(得分:0)

您需要提供认证文件的绝对路径。 Python很可能会加载项目HOME,但对于apache,它需要完整的路径。