Django Mod_wsgi https错误连接被拒绝
我的团队正在开发一个RESTAPI,以支持使用Django的REST框架的iPhone应用程序。现在是我们从通过开发WSGI接口托管转到mod_WSGI apache接口托管的时候了。我们决定使用mod_wsgi-httpd作为Apache实例 我们无法让mod_wsgi通过HTTPS托管。 我们在django应用程序设置文件(settings.py)中包含了mod_wsgi 并且可以使用以下命令成功启动mod_wsgi服务器: python manage.py runmodwsgi--主机0.0.0.0--端口8000--https端口8001--ssl证书/path/to/cert/和/key HTTP服务器工作得非常好。我们所有的HTTP-only API方法都按照预期进行侦听和响应。HTTPS方面不合作。尝试访问仅HTTPS方法时,连接被拒绝 例如,当试图连接到使用谷歌浏览器的方法 (ldapauth是一种HTTPS方法) 铬吐回。。。 类似地,客户端Swift中形成的请求也被拒绝 通常我认为这是一个更基本的问题,但是我们在使用开发WSGI sslserver(也在project的settings.py安装的应用程序中)方面的成功使我认为这是mod_WSGI或mod_WSGI-httpd的问题。使用此命令,我们可以通过SSL托管API,并获得成功的请求/响应: python manage.py runsslserver 0.0.0:8001--key/path/to/key--cert/path/to/certDjango Mod_wsgi https错误连接被拒绝,django,apache,ssl,https,mod-wsgi,Django,Apache,Ssl,Https,Mod Wsgi,我的团队正在开发一个RESTAPI,以支持使用Django的REST框架的iPhone应用程序。现在是我们从通过开发WSGI接口托管转到mod_WSGI apache接口托管的时候了。我们决定使用mod_wsgi-httpd作为Apache实例 我们无法让mod_wsgi通过HTTPS托管。 我们在django应用程序设置文件(settings.py)中包含了mod_wsgi 并且可以使用以下命令成功启动mod_wsgi服务器: python manage.py runmodwsgi--主机0.
我在配置mod_wsgi或mod_wsgi-httpd时可能遗漏了什么?非常感谢你的帮助,快去吧 您需要指定
--server name
选项,其中包含可使用https地址访问的站点名称。这应该与SSL证书的设置名称相匹配
python manage.py runmodwsgi --host 0.0.0.0 --port 8000 --https-port 8001 --ssl-certificate /path/to/cert/and/key --server-name host.example.com
然后,您将使用带有FQDN的URL访问它:
https://host.example.com:8001
如果您希望能够从localhost(同一系统)访问它,而不需要提供FQDN主机名,则可以使用--allow localhost
选项
python manage.py runmodwsgi --host 0.0.0.0 --port 8000 --https-port 8001 --ssl-certificate /path/to/cert/and/key --server-name host.example.com --allow-localhost
对于后者,即使使用官方证书作为主机名,您也会收到关于证书不匹配的浏览器警告。对于像wget和curl这样的命令行HTTP工具,您必须告诉他们在这些情况下它是一个不安全的站点
这是因为它违背了HTTPS和SSL证书通常的使用方式,仅允许出于测试目的从localhost通过名称而不是正确的服务器名称进行访问
简言之,在使用HTTPS时,访问站点时应该始终使用正确的主机名,而不是IP地址。如有必要,可以在主机服务文件中为系统创建虚拟主机映射
例如,在/etc/hosts
文件中,您可以添加:
127.0.0.1 host.example.com
有关更多信息,建议您使用mod_wsgi邮件列表。我不再习惯在这里闲逛,也不再在这里回答有关mod_wsgi的问题,这是一个偶然的机会,我注意到了这个问题。谢谢你的帮助!这正是问题所在。必须确保mod_wsgi知道服务器名称。
127.0.0.1 host.example.com