--- lang: zh-tw --- # Cloudflare HTTPS 簽證 [TOC] --- ## 前言 :::info 先將購買的網域設定 NameServer 名稱伺服器,更改為 Cloudflare 之所有 ::: ## 概述 :::info 我們需要一個在外網能夠訪問的網頁 IP 位置或域名,通訊的連接埠要開啟,可以透過[這個網站](https://www.yougetsignal.com/tools/open-ports/)檢查連接埠狀態。 客戶端將通過 Cloudflare 的 Proxy 向伺服器訪問資源,使用的 SSL/TLS 憑證是由 Cloudflare CA 所發布 ::: ## 設定步驟 ### 1. SSL/TLS > Overview(概述) 中,將加密模式設定為 Full strict (完整嚴格)  --- ### 2. SSL/TLS > Edge Certificates 中,Always Use HTTPS 如有需要可開啟  --- ### 3. SSL/TLS > Origin Server 中,可以註冊憑證所需文件,輸入所需域名與子域名,將生成包含 PEM 與 KEY 兩份資料,可存為檔案使用 :::warning KEY 內容將在頁面關閉後刪除,一定要記錄下來不然之後找不回來 :::   --- ### 4. 撰寫基本伺服器程式碼,並在目錄下放至 cert.pem 與 key.pem 兩個檔案 ```python= # 檔案名稱 app.py from flask import Flask app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def home(): return "Hello, World!", 200 if __name__ == '__main__': app.run() ```  --- ### 5. 啟動伺服器 `$ sudo python -m flask run --host 0.0.0.0 --port 443 --cert=cert.pem --key=key.pem`  --- ### 6. 確保伺服器 443 端口對外開放 [測試網站](https://yougetsignal.com/tools/open-ports)  --- ### 7. 設定 Cloudflare DNS 紀錄 根據需求選擇使用靜態 A 紀錄還是 CNAME 搭配 No-IP 的 ddns 浮動 IP 靜態化 Proxy 必須要開啟  --- ### 8. 完成  --- > [name=XinShou] --- ###### tags: `Tutor` `Cloudflare` <style> .markdown-body p { font-size: 18px; } </style>
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up