2013-02-02 48 views
1

我在AWS EC2實例上運行Django。在Django中使用https

我正在從Foursquare API接收checkin POSTS。 Foursquare需要一個https地址才能發送POST(但是證書不必簽名)。

如何獲得HTTPS與Django一起使用?我知道我將需要另一臺服務器,比如Apache。如果是這樣的話,我對Apache很少了解,並且發現大部分答案都令人困惑。

我只需要這個例子的https。什麼是最簡單的方法來完成這一點?

回答

2

如果Apache不是必需的,那麼您可以使用其他服務器,例如NGINX。有一個教程for getting NGINX running on an EC2 environment。我建議NGINX的原因是因爲它表現更好(注意:我確實與ab比較,但不要拿我說)。

運行NGINX後,您可以將其配置爲使用SSL;這裏是the documentation to do so。你需要類似NGINX的原因是因爲python不適合所有類型的請求(例如媒體/靜態文件)。您可能還需要NGINX將請求交給WSGI處理程序(例如uwsgigunicorn)。你可以read more about that here

如果不需要對SSL證書進行簽名,您可以創建自簽名證書,這裏是an example of tutorial,您可以在創建證書的步驟之後停止(或者如果要使用Apache,請繼續執行所有操作腳步)。

一些很好的教程:

編輯:同時處理httphttps

server { 
    listen    80; 
    listen    443 ssl; 
    server_name   www.example.com; 
    ssl_certificate  www.example.com.crt; 
    ssl_certificate_key www.example.com.key; 
    location/{ 
     ... 
    } 
} 
+0

而且我在哪裏指定端口443應該是 「轉」 到80?或者那是暗示的。 –