国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:8日期:2024-09-08 13:35:08
為什么你的網(wǎng)站需要支持HTTPS協(xié)議?

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

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

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

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

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

一共分三步:

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

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

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

第一步:購買下載SSL證書

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

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

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

第二步:修改Nginx配置信息

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

# /etc/nginx/conf.d目錄下的配置文件server {listen 443 ssl; 監(jiān)聽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; 監(jiān)聽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; # 監(jiān)聽80端口server_name your_domain.com www.your_domain.com;return 301 https://$server_name$request_uri; # 永久重定向}第三步 修改Django的settings.py

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

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

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

MIDDLEWARE = [ ’django.middleware.security.SecurityMiddleware’,]小結(jié)

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

以上就是Django項目如何獲得SSL證書與配置HTTPS的詳細內(nèi)容,更多關(guān)于Django 獲得SSL證書與配置HTTPS的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Django
相關(guān)文章:
主站蜘蛛池模板: 91在线成人| 欧美日韩一二区 | 九九视频高清视频免费观看 | a一级毛片录像带 录像片 | 亚洲欧美视频网站 | 欧美性色网 | 99成人国产精品视频 | 欧美亚洲国产精品久久久久 | 国产成人免费网站在线观看 | 荡女妇边被c边呻吟久久 | 欧美精品免费线视频观看视频 | 91b站| 日本特爽特黄特刺激大片 | 国产成人精品久久二区二区 | 亚洲一区二区三区91 | 99精品99| 久久亚洲人成国产精品 | 国产亚洲综合久久 | 亚洲欧洲日韩综合色天使不卡 | 一级待一黄aaa大片在线还看 | 成年女人看片免费视频播放器 | 国内一级野外a一级毛片 | 视频一区免费 | 成年人视频在线免费看 | 欧美手机手机在线视频一区 | 大陆精品自在线拍国语 | 91精品啪在线看国产网站 | 在线有码 | 一级毛片aaaaaa视频免费看 | 国产成人福利视频在线观看 | 天堂一区二区在线观看 | 毛片免费在线观看网址 | 日本高清色本在线www | 亚洲国产欧美在线人成精品一区二区 | 在线播放成人高清免费视频 | 亚洲爽| 精品国产一区二区三区不卡蜜臂 | 欧美一级一毛片 | 国产大片免费天天看 | 亚洲高清在线观看视频 | 萌白酱福利视频 |