婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Django項目如何獲得SSL證書與配置HTTPS

Django項目如何獲得SSL證書與配置HTTPS

熱門標簽:電信營業廳400電話申請 蘇州電銷機器人十大排行榜 溫州旅游地圖標注 悟空智電銷機器人6 外呼不封號系統 江蘇房產電銷機器人廠家 荊州云電銷機器人供應商 幫人做地圖標注收費算詐騙嗎 遼寧400電話辦理多少錢

為什么你的網站需要支持HTTPS協議?

簡而言之:HTTPS = HTTP + SSL = 更安全的數據傳輸

HTTP協議簡稱超文本傳輸協議,它廣泛用于在Web瀏覽器和網站服務器之間傳遞信息。HTTP協議的缺點是它以明文方式發送內容(包括用戶密碼),不提供任何方式的數據加密。如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸文本,就可以直接讀取其中的信息。

為了解決這個隱患和保證數據的傳輸安全,HTTPS協議(安全套接字層超文本傳輸協議)誕生了。它在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信數據加密。

注意:HTTP協議默認使用的端口是80端口,HTTPS協議默認使用的端口是443端口。如果你使用云服務器,請確保設置安全組時已經開放了443端口。

如何在生產環境中部署Django項目時配置HTTPS?

一共分三步:

1. 購買下載SSL證書,通常包括一張證書(.cert或.pem)和一個私有密鑰文件(.key)。

2. 修改Nginx或Apache配置信息,并上傳下載頒發的SSL證書及key到指定文件夾

3. 修改Django配置文件settings.py

第一步:購買下載SSL證書

SSL證書有很多種, 級別越高越貴,網上的免費午餐并不多。對于個人網站使用單域名的DV SSL證書一般就夠了,這種證書阿里云做活動期間是可以免費申請的。購買SSL證書時選擇單域名-DV SSL-免費版即可,如下圖所示。收費版的SSL證書價格比較便宜的還namecheap。

無論哪個SSL證書服務商最后都會提供證書下載鏈接或直接將證書發送到你的郵箱,只是流程不同而已。隨后你需要將下載的證書上傳到服務器指定文件夾,見下一步。

第二步:修改Nginx配置信息

在生產環境中部署Django時我們一般以Nginx做反向代理和靜態文件服務器,這里簡單說下Nginx的配置信息。Nginx配置文件通常位于/etc/nginx/conf.d目錄下,修改配置文件添加SSL相關信息。

# /etc/nginx/conf.d目錄下的配置文件
server {
listen 443 ssl; 監聽443端口
ssl_certificate /path/to/certificate/your_domain_chain.crt; # 證書地址
ssl_certificate_key /path/to/your_private.key; # 私有密鑰文件地址
server_name your_domain.com www.your_domain.com; # 域名
}

SSL證書和私有密鑰文件可以上傳到服務器上任何一個指定目錄,但通常做法是將其上傳到Linux的/usr/share/nginx/ssl目錄下,所以上述配置信息可以簡化為:

# /etc/nginx/conf.d目錄下的配置文件
server {
listen 443 ssl; 監聽443端口
ssl_certificate /usr/share/nginx/ssl/your_domain_chain.crt; # 證書地址
ssl_certificate_key /usr/share/nginx/ssl/your_private.key; # 私有密鑰文件地址
server_name your_domain.com www.your_domain.com; # 域名
}

你還可以將所有來自80端口的http請求永久地重定向至https。

server {
listen 80; # 監聽80端口
server_name your_domain.com www.your_domain.com;
return 301 https://$server_name$request_uri; # 永久重定向
}

第三步 修改Django的settings.py

當你的網站支持https后,你可以在settings.py新增如下安全配置,可以給網站和用戶數據提供更高級別的保護。這個設置也是django cookiecutter推薦的在生產環境中的默認配置。

# SECURITY安全設置 - 支持http時建議開啟
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
SECURE_SSL_REDIRECT = True # 將所有非SSL請求永久重定向到SSL
SESSION_COOKIE_SECURE = True # 僅通過https傳輸cookie
CSRF_COOKIE_SECURE = True # 僅通過https傳輸cookie
SECURE_HSTS_INCLUDE_SUBDOMAINS = True # 嚴格要求使用https協議傳輸
SECURE_HSTS_PRELOAD = True # HSTS為
SECURE_HSTS_SECONDS = 60
SECURE_CONTENT_TYPE_NOSNIFF = True # 防止瀏覽器猜測資產的內容類型

注意:Django的SECURE_SSL_REDIRECT = True也可實現80端口的http請求永久地重定向至https, 與Nginx的301重定向設置選其一即可。Django以上的幾個安全設置均依賴下面這個SecurityMiddleware中間件。

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
]

小結

Django項目上線時配置https非常簡單,僅需3步。你學會了嗎?

以上就是Django項目如何獲得SSL證書與配置HTTPS的詳細內容,更多關于Django 獲得SSL證書與配置HTTPS的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 詳解Django關于StreamingHttpResponse與FileResponse文件下載的最優方法
  • 通過Django Admin+HttpRunner1.5.6實現簡易接口測試平臺
  • django實現HttpResponse返回json數據為中文
  • Django框架HttpRequest對象用法實例分析
  • Django框架HttpResponse對象用法實例分析
  • Django接收自定義http header過程詳解
  • Django使用HttpResponse返回圖片并顯示的方法
  • Django的HttpRequest和HttpResponse對象詳解
  • Django使用httpresponse返回用戶頭像實例代碼
  • 在Lighttpd服務器中運行Django應用的方法
  • 在 Django/Flask 開發服務器上使用 HTTPS

標簽:濟南 黃山 三沙 臺灣 喀什 欽州 宿遷 景德鎮

巨人網絡通訊聲明:本文標題《Django項目如何獲得SSL證書與配置HTTPS》,本文關鍵詞  Django,項目,如何,獲得,SSL,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django項目如何獲得SSL證書與配置HTTPS》相關的同類信息!
  • 本頁收集關于Django項目如何獲得SSL證書與配置HTTPS的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 许昌市| 和平县| 峨眉山市| 抚松县| 山东省| 安丘市| 达日县| 阳山县| 景东| 伊川县| 砀山县| 昭通市| 安图县| 南溪县| 定襄县| 巴彦淖尔市| 长白| 芮城县| 镇沅| 仁布县| 清涧县| 桐城市| 周口市| 金平| 墨脱县| 潞西市| 洛浦县| 达拉特旗| 平泉县| 塔城市| 灵璧县| 龙游县| 花垣县| 陆川县| 徐州市| 德州市| 南华县| 沂水县| 财经| 三河市| 益阳市|