日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

win10+python+Flask设置SSL证书,使用https服务

發(fā)布時(shí)間:2024/1/18 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 win10+python+Flask设置SSL证书,使用https服务 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本人也是看了很多博客,才學(xué)會(huì)的。

Flask使用SSL搭建HTTPS服務(wù)

  • 直接使用ssl:
  • from flask import *app = Flask(__name__)@app.route('/') def index():return '<h1>hello</h1>'if __name__ == '__main__':app.run(port=7000, ssl_context='adhoc')

    這樣,就可以開(kāi)啟一個(gè)https服務(wù):
    控制臺(tái)輸出如下:

    * Serving Flask app "main" (lazy loading)* Environment: productionWARNING: This is a development server. Do not use it in a production deployment.Use a production WSGI server instead.* Debug mode: on* Restarting with stat* Debugger is active!* Debugger PIN: 620-590-151* Running on https://127.0.0.1:7000/ (Press CTRL+C to quit)

    這樣,就可以通過(guò)https://127.0.0.1:7000/訪問(wèn)flask程序了(注意,由于證書(shū)不是由受信任的第三方機(jī)構(gòu)CA簽發(fā)的證書(shū),而是自己的,瀏覽器會(huì)提示有風(fēng)險(xiǎn),直接選擇“繼續(xù)訪問(wèn)”就可以了)~
    但是,這還不夠,我們還是希望能夠使用自己指定的證書(shū)或者自己簽發(fā)一個(gè)證書(shū)給自己使用。(如果有報(bào)錯(cuò),需要安裝pycrypto庫(kù)、paramiko庫(kù)以及按提示安裝visual c++ build tools 14.0以上版本,vc要裝比較久,但是裝好就可以了)
    2. 使用一個(gè)自己指定的證書(shū)運(yùn)行https服務(wù):

    from flask import *app = Flask(__name__)@app.route('/') def index():return '<h1>hello</h1>'if __name__ == '__main__':app.run(port=7000, ssl_context=('key/server.crt', 'key/server.key'), debug=True)

    只需要將ssl_context參數(shù)改成一個(gè)元組,第零位是crt文件路徑,第一位是key文件路徑即可開(kāi)啟https服務(wù)~
    但這樣運(yùn)行https服務(wù),瀏覽器同樣會(huì)提示有風(fēng)險(xiǎn)。
    3. 如何生成一個(gè)自簽證書(shū)呢?很簡(jiǎn)單,只需要安裝一個(gè)openssl。如何安裝openssl呢?先去下載::http://slproweb.com/products/Win32OpenSSL.html 下載windows的release版本,exe、msi都可以。下載后安裝。安裝好后,將安裝目錄的bin文件夾添加到環(huán)境變量(例如我拍的是C:\Program Files\OpenSSL-Win64\bin)然后就可以在命令行通過(guò)輸入openssl調(diào)用openssl了,接下來(lái),在你想要?jiǎng)?chuàng)建證書(shū)的位置輸入以下幾行命令(本人從其他博主那里學(xué)來(lái)的,在這里表示感謝):

    # 生成私鑰 openssl genrsa -des3 -out server.key 1024 # 生成csr文件 openssl req -new -key server.key -out server.csr cp server.key server.key.org openssl rsa -in server.key.org -out server.key # 生成crt文件,有效期365天 openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    就生成了四個(gè)文件:server.crt server.csr server.key server.key.org 這樣,簽名就生成好了。
    在生成過(guò)程中,需要填寫一些基本信息,如地址、組織、負(fù)責(zé)人、郵箱等等信息,以及設(shè)置密碼,按要求填寫即可。

    現(xiàn)在,回到剛剛的flask代碼,在app.run那一行,將ssl_context參數(shù)元組改成剛剛生成好的crt、key文件的對(duì)應(yīng)路徑,運(yùn)行代碼,即可使用剛剛生成好的證書(shū)作為https的證書(shū)啦~但需要注意,此時(shí)瀏覽器仍會(huì)提示有風(fēng)險(xiǎn),因?yàn)檫@個(gè)證書(shū)是我們自己簽名的,而不是第三方頒發(fā)的CA證書(shū)。
    4. 那么,如何獲得CA證書(shū)呢?那就需要向你所使用的云服務(wù)商申請(qǐng)了 一般都會(huì)收費(fèi),還需要備案啥的,網(wǎng)上的方法很多,本人就不講了~ 使用第三方認(rèn)證的CA證書(shū)替換自己生成的證書(shū)后,在瀏覽器打開(kāi)你的域名時(shí),就會(huì)看到url旁邊的小綠標(biāo),很舒服~
    5. 第三方認(rèn)證的CA證書(shū)與自簽證書(shū)的區(qū)別在哪里?首先,這兩者都是可以進(jìn)行加密https通信的,安全性是一樣的。但是,自己簽的證書(shū)沒(méi)有第三方的驗(yàn)證,所以是不受信的,在瀏覽器瀏覽時(shí)會(huì)提示風(fēng)險(xiǎn)。第三方驗(yàn)證的證書(shū)可以在云服務(wù)提供商申請(qǐng),但是需要錢,以及會(huì)過(guò)期,管理起來(lái)比較繁瑣。而自己的證書(shū)是自己簽的,比較自由,也可以設(shè)置更長(zhǎng)的過(guò)期時(shí)間。

    總結(jié)

    以上是生活随笔為你收集整理的win10+python+Flask设置SSL证书,使用https服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。