我在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雖然簡單,但僅僅是不同而已,同時也是透明的,而不是讓麻煩值得,恕我直言。 –