我在Django中构建了一个网站,但我想将它作为“HTTPS”(通过端口443加密)提供。通过HTTPS服务Django站点
我已经有了证书,但是如何配置Django来使用它?它可能真的是Django不支持这个开箱即用,如果是的话,我应该如何去作为HTTPS服务的网站?
服务器是Ubuntu 14.04
我在Django中构建了一个网站,但我想将它作为“HTTPS”(通过端口443加密)提供。通过HTTPS服务Django站点
我已经有了证书,但是如何配置Django来使用它?它可能真的是Django不支持这个开箱即用,如果是的话,我应该如何去作为HTTPS服务的网站?
服务器是Ubuntu 14.04
它与Django无关,但它实际上被支持。请按照下列步骤操作:
1.获得证书 使用letsencrypt,因为它是免费的!
2.更新资料库和安装工具 在终端输入以下命令:
sudo apt-get install git
:
sudo apt-get update
,如果你不具备的git已经通过这个命令进行安装3.设置,
目录更改为Django项目目录中cd
cd django_project
运行这些命令:
git clone https //github.com/letsencrypt/letsencrypt
然后
cd letsencrypt
./letsencrypt-auto --help
如果你在这里,它意味着一切工作正常!因此进入下一个步骤:
service nginx stop
(如果使用其他Web服务器试图阻止他们)
使用您的域名替换example.com:
./letsencrypt-auto certonly --standalone -d example.com
sudo nano /etc/nginx/sites-available/django
编辑文件一样这样的:
server {
#listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
和
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
现在只需重新启动服务器即可。
这与Django无关。您必须将您的Web服务器配置为通过HTTPS提供服务。 – Selcuk
是w Selcuk。不要将Django的便捷开发服务器与生产预期的Web服务器相混淆。举例来说,nginx就可以做到这一点,并且有很多关于https的指南。希望拥有https的开发者的一个明显有效的原因可能是更密切地匹配产品。然而,nginx-django https虽然简单,但仅仅是不同而已,同时也是透明的,而不是让麻烦值得,恕我直言。 –