亚洲欧美日韩熟女|做爱高潮视频网址|国产一区二区三级片|国产Av中文字幕www.性色av|亚洲婷婷永久免费|国产高清中文字幕|欧美变态网站久re视频精品|人妻AV鲁丝第一页|天堂AV一区二区在线观看|综合 91在线精品

在 Django/Flask 開發(fā)服務(wù)器上使用 HTTPS

2023-04-12


使用 Django 或 Flask 這種框架開發(fā) web app 的時(shí)候一般都會(huì)用內(nèi)建服務(wù)器開發(fā)和調(diào)試程序,等程序完成后再移交到生產(chǎn)環(huán)境部署。問題是這些內(nèi)建服務(wù)器通常都不支持 HTTPS,我們想在開發(fā)的時(shí)候就能夠使用和測(cè)試 HTTPS,不想還沒測(cè)試就部署到生產(chǎn)環(huán)境,所以我們需要內(nèi)建服務(wù)器能支持 HTTPS.


這個(gè)問題可以通過一個(gè)外部程序stunnel來解決,stunnel 的作用是通過 OpenSSL 庫對(duì) TCP 會(huì)話進(jìn)行加密,建立起一個(gè)安全通道,保護(hù)沒有加密功能或未加密的程序。其主要功能有兩個(gè):


  • 接收未加密的數(shù)據(jù)流,進(jìn)行 SSL 加密,然后把加密后的數(shù)據(jù)流通過網(wǎng)絡(luò)發(fā)送出去;
  • 對(duì)已加密的數(shù)據(jù)流進(jìn)行解密,并將解密后的數(shù)據(jù)流其通過網(wǎng)絡(luò)發(fā)送給另一個(gè)程序。

了解了 stunnel 的功能后我們很容易就能想到利用 stunnel 建立一個(gè) SSL 加密通道綁定到 Django/Flask 內(nèi)建服務(wù)器上,stunnel 啟動(dòng) 443 端口接受用戶的 HTTPS 請(qǐng)求,解密后發(fā)送給內(nèi)建服務(wù)器的 8000 端口處理,內(nèi)建服務(wù)器處理完后發(fā)送數(shù)據(jù)給 stunnel 然后加密后返回給瀏覽器用戶。


好吧,上面說了一堆貌似很復(fù)雜,其實(shí)使用 stunnel 很簡單。


在 Django/Flask 開發(fā)服務(wù)器所在的機(jī)器上安裝 stunnel:






# yum install stunnel(在 CentOS 上)

或者

$ sudo apt-get install stunnel4(在 Ubuntu 上)





如果沒有購買 SSL 證書的話自己生成一個(gè),對(duì)了,這個(gè)文件的權(quán)限必須是 600 哦:





# openssl req -new -x509 -days 365 -nodes -out vpsee.pem -keyout vpsee.pem

# chmod 600 vpsee.pem





新建一個(gè)配置文件叫做 https,然后用 stunnel 執(zhí)行這個(gè)配置文件,啟動(dòng) 443 端口連接到 Django/Flask 內(nèi)建服務(wù)器的 8000 端口:





# vi https
pid =
cert = vpsee.pem
debug = 7
foreground = yes

[https]
accept = 443
connect = 8000

# stunnel https




啟動(dòng) Django 內(nèi)建服務(wù)器綁定到上面配置文件提到的 8000 端口:






# HTTPS=1 python manage.py runserver 0.0.0.0:8000





啟動(dòng) Flask 內(nèi)建服務(wù)器不需要特別的,改變端口到 8000,按照正常的方式啟動(dòng)就可以了:





# vi run.py
#!flask/bin/python
from app import app
app.run(host='0.0.0.0', port=8000, debug = True)

# ./run.py
 * Running on http://0.0.0.0:8000/
 * Restarting with reloader






本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p>

免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com