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 Blueprintapi = 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.comapp.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/訪問你的首頁了
?
?
?
如果文章對您有幫助,打上一下唄!
?
?
?
?
總結
以上是生活随笔為你收集整理的python+flask 配置https网站ssl安全认证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识web(一)
- 下一篇: ISO26262功能安全 故障分类