主頁(yè) > 知識(shí)庫(kù) > Django項(xiàng)目如何獲得SSL證書(shū)與配置HTTPS

Django項(xiàng)目如何獲得SSL證書(shū)與配置HTTPS

熱門標(biāo)簽:電信營(yíng)業(yè)廳400電話申請(qǐng) 蘇州電銷機(jī)器人十大排行榜 溫州旅游地圖標(biāo)注 悟空智電銷機(jī)器人6 外呼不封號(hào)系統(tǒng) 江蘇房產(chǎn)電銷機(jī)器人廠家 荊州云電銷機(jī)器人供應(yīng)商 幫人做地圖標(biāo)注收費(fèi)算詐騙嗎 遼寧400電話辦理多少錢

為什么你的網(wǎng)站需要支持HTTPS協(xié)議?

簡(jiǎn)而言之:HTTPS = HTTP + SSL = 更安全的數(shù)據(jù)傳輸

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

為了解決這個(gè)隱患和保證數(shù)據(jù)的傳輸安全,HTTPS協(xié)議(安全套接字層超文本傳輸協(xié)議)誕生了。它在HTTP的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書(shū)來(lái)驗(yàn)證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的通信數(shù)據(jù)加密。

注意:HTTP協(xié)議默認(rèn)使用的端口是80端口,HTTPS協(xié)議默認(rèn)使用的端口是443端口。如果你使用云服務(wù)器,請(qǐng)確保設(shè)置安全組時(shí)已經(jīng)開(kāi)放了443端口。

如何在生產(chǎn)環(huán)境中部署Django項(xiàng)目時(shí)配置HTTPS?

一共分三步:

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

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

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

第一步:購(gòu)買下載SSL證書(shū)

SSL證書(shū)有很多種, 級(jí)別越高越貴,網(wǎng)上的免費(fèi)午餐并不多。對(duì)于個(gè)人網(wǎng)站使用單域名的DV SSL證書(shū)一般就夠了,這種證書(shū)阿里云做活動(dòng)期間是可以免費(fèi)申請(qǐng)的。購(gòu)買SSL證書(shū)時(shí)選擇單域名-DV SSL-免費(fèi)版即可,如下圖所示。收費(fèi)版的SSL證書(shū)價(jià)格比較便宜的還namecheap。

無(wú)論哪個(gè)SSL證書(shū)服務(wù)商最后都會(huì)提供證書(shū)下載鏈接或直接將證書(shū)發(fā)送到你的郵箱,只是流程不同而已。隨后你需要將下載的證書(shū)上傳到服務(wù)器指定文件夾,見(jiàn)下一步。

第二步:修改Nginx配置信息

在生產(chǎn)環(huán)境中部署Django時(shí)我們一般以Nginx做反向代理和靜態(tài)文件服務(wù)器,這里簡(jiǎn)單說(shuō)下Nginx的配置信息。Nginx配置文件通常位于/etc/nginx/conf.d目錄下,修改配置文件添加SSL相關(guān)信息。

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

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

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

你還可以將所有來(lái)自80端口的http請(qǐng)求永久地重定向至https。

server {
listen 80; # 監(jiān)聽(tīng)80端口
server_name your_domain.com www.your_domain.com;
return 301 https://$server_name$request_uri; # 永久重定向
}

第三步 修改Django的settings.py

當(dāng)你的網(wǎng)站支持https后,你可以在settings.py新增如下安全配置,可以給網(wǎng)站和用戶數(shù)據(jù)提供更高級(jí)別的保護(hù)。這個(gè)設(shè)置也是django cookiecutter推薦的在生產(chǎn)環(huán)境中的默認(rèn)配置。

# SECURITY安全設(shè)置 - 支持http時(shí)建議開(kāi)啟
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
SECURE_SSL_REDIRECT = True # 將所有非SSL請(qǐng)求永久重定向到SSL
SESSION_COOKIE_SECURE = True # 僅通過(guò)https傳輸cookie
CSRF_COOKIE_SECURE = True # 僅通過(guò)https傳輸cookie
SECURE_HSTS_INCLUDE_SUBDOMAINS = True # 嚴(yán)格要求使用https協(xié)議傳輸
SECURE_HSTS_PRELOAD = True # HSTS為
SECURE_HSTS_SECONDS = 60
SECURE_CONTENT_TYPE_NOSNIFF = True # 防止瀏覽器猜測(cè)資產(chǎn)的內(nèi)容類型

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

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

小結(jié)

Django項(xiàng)目上線時(shí)配置https非常簡(jiǎn)單,僅需3步。你學(xué)會(huì)了嗎?

以上就是Django項(xiàng)目如何獲得SSL證書(shū)與配置HTTPS的詳細(xì)內(nèi)容,更多關(guān)于Django 獲得SSL證書(shū)與配置HTTPS的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 詳解Django關(guān)于StreamingHttpResponse與FileResponse文件下載的最優(yōu)方法
  • 通過(guò)Django Admin+HttpRunner1.5.6實(shí)現(xiàn)簡(jiǎn)易接口測(cè)試平臺(tái)
  • django實(shí)現(xiàn)HttpResponse返回json數(shù)據(jù)為中文
  • Django框架HttpRequest對(duì)象用法實(shí)例分析
  • Django框架HttpResponse對(duì)象用法實(shí)例分析
  • Django接收自定義http header過(guò)程詳解
  • Django使用HttpResponse返回圖片并顯示的方法
  • Django的HttpRequest和HttpResponse對(duì)象詳解
  • Django使用httpresponse返回用戶頭像實(shí)例代碼
  • 在Lighttpd服務(wù)器中運(yùn)行Django應(yīng)用的方法
  • 在 Django/Flask 開(kāi)發(fā)服務(wù)器上使用 HTTPS

標(biāo)簽:濟(jì)南 黃山 三沙 臺(tái)灣 喀什 欽州 宿遷 景德鎮(zhèn)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django項(xiàng)目如何獲得SSL證書(shū)與配置HTTPS》,本文關(guān)鍵詞  Django,項(xiàng)目,如何,獲得,SSL,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Django項(xiàng)目如何獲得SSL證書(shū)與配置HTTPS》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Django項(xiàng)目如何獲得SSL證書(shū)與配置HTTPS的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章