本文詳細講解如何申請免費證書,需要先準備好域名,將服務器IP和域名綁定。
1、注冊FreeSSL賬號
網址:?https://freessl.org/
2、申請流程
登錄后首頁輸入域名,然后點擊Create certificate,跳轉到證書申請頁面。
或者在首頁點擊Account菜單也可以跳轉到下面的申請頁面。
輸入域名后點擊Next Step跳轉到下面的選項,選擇90天的免費證書。
選擇自動生成CSR,點擊Next Step
最后一步是選擇證書套餐,選擇Free 90-Day Certificates直接Next Step。
3、域名驗證
這一步需要證明域名是你的,有三種驗證方法,分別是郵箱驗證,DNS和服務器文件上傳。
第三種方法只要綁定域名的服務器可以登錄就可以,下面使用該方法驗證。
(1)獲取驗證信息:上圖中的Auth path是一個字符串,內容類似于下面這樣,由域名和一段字符組成www.xxxx.com9DFGDFG89HG8ER9HGE.txt
(2)準備驗證文件:在服務器?/home/www/.well-known/pki-validation?路徑下新建一個文件,名稱為9DFGDFG89HG8ER9HGE.txt(也就是Auth path把域名去掉的部分),將上圖Auth value中的內容寫到該文件中。
(3)啟動HTTP服務:在 /home/www 目錄下新建file_server.py,代碼內容如下
import os
import flaskapp = flask.Flask(__name__)@app.before_request
def before():root_dir = os.path.dirname(__file__)sub_dir = flask.request.full_pathif sub_dir[0] == "/":sub_dir = sub_dir[1:]if sub_dir[-1] == "?":sub_dir = sub_dir[:-1]if os.name == "nt":sub_dir = sub_dir.replace("/", "\\")file_path = os.path.join(root_dir, sub_dir)if os.path.exists(file_path):return flask.send_file(file_path, as_attachment=False)else:return file_pathif __name__ == "__main__":app.run(host="0.0.0.0", port=80, debug=True)
執行上面的代碼開啟HTTP服務
python?file_server.py
然后在FreeSSL中點擊Verify Domain按鈕驗證,完成驗證后下載證書即可。
FreeSSL驗證的時候會通過特定的Get請求獲取驗證文件,請求的URL如下所示
/.well-known/pki-validation/9DFGDFG89HG8ER9HGE.txt
因此也可以用tomcat或者其他方法提供HTTP服務。