python+flask 配置https網站ssl安全認證


 

目錄

綜述:

方法1:openssl

准備步驟

具體實施

方法2:阿里雲或者寶塔免費申請(推薦)

步驟

1.准備步驟

阿里雲

寶塔

python+flask子域名訪問設置

1.給子域名添加DNS解析

2.子域名ssl證書申請

.代碼修改


綜述:

由於業務服務器需要對https協議進行支持,加上代碼是python+flask所編寫,因此需要去申請ssl的證書。有兩種方式:自己使用openssl 命令配置、使用第三方免費的ssl證書。由於自己配置的證書有一定的不穩定性,可能造成不能被瀏覽器校驗通過之類的情況。我個人比較傾向使用阿里雲、寶塔的免費ssl認證。接下來,記錄兩種方式如何操作。並在最后,介紹怎么使用子域名訪問網站


方法1:openssl

准備步驟

 pip install pyOpenSSL

具體實施

# 生成私鑰,按照提示填寫內容
openssl genrsa -des3 -out server.key 1024

# 生成csr文件 ,按照提示填寫內容
openssl req -new -key server.key -out server.csr

# Remove Passphrase from key
cp server.key server.key.org 
openssl rsa -in server.key.org -out server.key

# 生成crt文件,有效期1年(365天)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


執行完上述命令,將會生成server.crt和server.key文件。在flask代碼中引用即可:

from flask import Flask    
app = Flask(__name__)    
app.run('0.0.0.0', debug=True, port=8100, ssl_context=('your_path/server.crt', 'your_path/server.key'))  

方法2:阿里雲或者寶塔免費申請(推薦)

步驟

1.准備步驟

阿里雲

控制台查找域名,如下圖,慢慢找。開啟證書后,下載下來。

證書內容,需要用到紅框中的兩個文件

加入到代碼中

from flask import Flask    
app = Flask(__name__)    
app.run('0.0.0.0', debug=True, port=8100, ssl_context=('your_path/XXXX.pem', 'your_path/XXXX.key'))  

寶塔

這里,需要實名認證,也方便。需要將一個文件放在網站目錄下進行驗證,跟着操作來不會錯,等所有操作結束,等待一會就可以下載證書了。

寶塔文件結構和阿里雲文件結構相似,不再贅述。

python+flask子域名訪問設置

1.給子域名添加DNS解析

很多平台都可以,不再說了

2.子域名ssl證書申請

詳情見上述步驟

3.代碼修改

#coding:utf8
#創建一個子域名
from flask import Blueprint

api = Blueprint('api',__name__,subdomain='api')

# attention1: 原來是app.route('/')
@api.route('/')
def index():
    return u'這個是api的首頁'


@api.route("/login/")
def login():
    return u'我是登錄頁面'


if __name__="__main__":
    app = Flask(__name__)   
    # attention2:你的以及域名,比如bbaidu.com
    app.config['SERVER_NAME'] ='bbaidu.com'
    app.run('0.0.0.0', debug=True, port=8100, ssl_context=('your_path/XXXX.pem', 'your_path/XXXX.key'))  

一陣操作猛如虎,主要注意兩個地方,代碼中已經注釋。主要是改變路由功能。

ok,現在就可以愉快的使用https://api.bbaidu.com/訪問你的首頁了

 

 

 

如果文章對您有幫助,打上一下唄!

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM