我在AWS EC2實例上運行Django。在Django中使用https
我正在從Foursquare API接收checkin POSTS。 Foursquare需要一個https地址才能發送POST(但是證書不必簽名)。
如何獲得HTTPS與Django一起使用?我知道我將需要另一臺服務器,比如Apache。如果是這樣的話,我對Apache很少了解,並且發現大部分答案都令人困惑。
我只需要這個例子的https。什麼是最簡單的方法來完成這一點?
我在AWS EC2實例上運行Django。在Django中使用https
我正在從Foursquare API接收checkin POSTS。 Foursquare需要一個https地址才能發送POST(但是證書不必簽名)。
如何獲得HTTPS與Django一起使用?我知道我將需要另一臺服務器,比如Apache。如果是這樣的話,我對Apache很少了解,並且發現大部分答案都令人困惑。
我只需要這個例子的https。什麼是最簡單的方法來完成這一點?
如果Apache不是必需的,那麼您可以使用其他服務器,例如NGINX。有一個教程for getting NGINX running on an EC2 environment。我建議NGINX的原因是因爲它表現更好(注意:我確實與ab
比較,但不要拿我說)。
運行NGINX後,您可以將其配置爲使用SSL;這裏是the documentation to do so。你需要類似NGINX的原因是因爲python不適合所有類型的請求(例如媒體/靜態文件)。您可能還需要NGINX將請求交給WSGI處理程序(例如uwsgi
或gunicorn
)。你可以read more about that here。
如果不需要對SSL證書進行簽名,您可以創建自簽名證書,這裏是an example of tutorial,您可以在創建證書的步驟之後停止(或者如果要使用Apache,請繼續執行所有操作腳步)。
一些很好的教程:
編輯:同時處理http
和https
:
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/{
...
}
}
而且我在哪裏指定端口443應該是 「轉」 到80?或者那是暗示的。 –