成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

Web 開(kāi)發(fā)學(xué)習(xí)筆記(3) --- 申請(qǐng)和部署HTTPS證書(shū)

gekylin / 730人閱讀

摘要:簡(jiǎn)介現(xiàn)在已經(jīng)進(jìn)入的時(shí)代證書(shū)目前應(yīng)用廣泛發(fā)展迅速相較于明文傳輸?shù)母影踩从捎谄浒踩珜邮褂玫氖且虼艘部梢苑Q(chēng)為或關(guān)于證書(shū)的分類(lèi)可以參考這篇博客證書(shū)需要向國(guó)際公認(rèn)的證書(shū)證書(shū)認(rèn)證機(jī)構(gòu)申請(qǐng)接下來(lái)我們將使用自動(dòng)化證書(shū)管理工具為我們的域名申請(qǐng)頒發(fā)的證書(shū)然

簡(jiǎn)介

現(xiàn)在已經(jīng)進(jìn)入 HTTPS 的時(shí)代, HTTPS 證書(shū) 目前應(yīng)用廣泛, 發(fā)展迅速. 相較于明文傳輸?shù)?HTTP, HTTPS 更加安全.


HTTPSHypertext Transfer Protocol Secure, 由于其安全層使用的是 TLS/SSL, 因此 HTTPS 也可以稱(chēng)為 HTTP over TLSHTTP over SSL. 關(guān)于 HTTPS 證書(shū)的分類(lèi), 可以參考這篇博客


HTTPS 證書(shū) 需要向國(guó)際公認(rèn)的證書(shū)證書(shū)認(rèn)證機(jī)構(gòu) Certificate Authority (CA) 申請(qǐng).


接下來(lái), 我們將使用自動(dòng)化證書(shū)管理工具 acme.sh 為我們的域名申請(qǐng) Let"s Encrypt 頒發(fā)的 HTTPS 證書(shū), 然后將其部署在我們的網(wǎng)站上.


本文假設(shè)我們的域名為 www.awesome.com


開(kāi)發(fā)環(huán)境

在前文的基礎(chǔ)上, 我們只需增加 acme.sh 這個(gè)工具. 它的中文文檔在這里. 安裝 acme.sh 的過(guò)程很簡(jiǎn)單, 在 Terminal 中輸入如下命令 acme.sh 即可.


curl  https://get.acme.sh | sh


生成證書(shū)

我們可以使用 http 方式來(lái)驗(yàn)證我們對(duì)域名的所有權(quán).


如果只申請(qǐng)單域名證書(shū) (Single Domain Certificate, 如單域名 www.awesome.com ), 那么在 Terminal 中運(yùn)行如下命令即可


acme.sh  --issue  -d  www.awesome.com  --standalone

acme 會(huì)在當(dāng)前目錄生成一個(gè)驗(yàn)證文件, 然后運(yùn)行一個(gè)監(jiān)聽(tīng) 80 端口的 server, 如果 Let"s Encrypt 成功地通過(guò)域名下載了這個(gè)文件, 就驗(yàn)證了我們對(duì)域名的所有權(quán), 就可以簽發(fā)證書(shū)了.


我們也可以運(yùn)行一個(gè) file server 監(jiān)聽(tīng) 80 端口


cd ~/webapp
python3 -m http.server 80

然后在另一個(gè) Terminal 里輸入如下命令


cd ~
acme.sh  --issue  -d  www.awesome.com  --webroot  ~/webapp

我們也可以通過(guò) dns 方式來(lái)驗(yàn)證我們對(duì)域名的所有權(quán). 如果要申請(qǐng)通配符證書(shū) (Wildcard Certificate, 如 *.awesome.com 形式的通用域名), 則需要用 dns 方式進(jìn)行驗(yàn)證.


首先我們?cè)?Godaddy 上申請(qǐng)開(kāi)發(fā)者 API key & secret, 然后參考 acme.sh 的文檔 readme 和 dnsapi, 執(zhí)行如下命令


export GD_Key="xxxxxxxx"
export GD_Secret="yyyyy"
acme.sh  --issue  --dns dns_gd -d "*.awesome.com" -d awesome.com

如果一切順利, 我們會(huì)發(fā)現(xiàn) Godaddy 的 DNS txt record 中多了一條 _acme-challenge 記錄. 接下來(lái)acme 會(huì)先等待 120s 以待新的紀(jì)錄生效, 然后通知 Let"s Encrypt 驗(yàn)證我們對(duì)域名的所有權(quán), 驗(yàn)證通過(guò)后, Let"s Encrypt 會(huì)為我們簽發(fā)證書(shū).


下一節(jié), 我們將講述如何安裝和部署證書(shū)


安裝和部署證書(shū)

對(duì)于單域名證書(shū), 根據(jù) acme 的文檔, 我們需要執(zhí)行以下命令, 將證書(shū)和公鑰放到 ~/ssl/ 文件夾中


acme.sh  --installcert  -d  www.awesome.com  --key-file  ~/ssl/server.key  --fullchain-file  ~/ssl/server.cer

對(duì)于通配符證書(shū), 操作也是類(lèi)似的, 把域名換成 "*.awesome.com" 就好了


acme.sh  --installcert  -d  "*.awesome.com"  --key-file  ~/ssl/server.key  --fullchain-file  ~/sslwebsite/server.cer

然后, 在之前編寫(xiě)的 server 中, 我們需要引入證書(shū)和公鑰, 從而將明文的消息用 ssl/tls 包裹起來(lái). 根據(jù) Stack Overflow, 這篇文章下面的 Comments, 以及 werkzeug docs, 我們需要在 app.run() 中加上 ssl_context=("~/ssl/server.cer", "~/ssl/server.key") 參數(shù), 再把監(jiān)聽(tīng)端口改為 443 即可:


# class IndexHandler(...):
#     ...

if __name__ == "__main__":
    app.add_url_rule("/", view_func=IndexHandler.as_view("index"))
    context = ("./server.cer", "./server.key")
    app.run(port=443, host="0.0.0.0", debug=True, threaded=True, ssl_context=context)

至此, 我們的 HTTPS 證書(shū)已經(jīng)申請(qǐng)和部署完成了. 但是我們的 server 目前還存在一個(gè)問(wèn)題, 就是只能訪問(wèn) https://www.awesome.com, 而原來(lái)的 http://www.awesome.com 已經(jīng)無(wú)法訪問(wèn)了, 因?yàn)槲覀兊?server 現(xiàn)在只能監(jiān)聽(tīng) 443 端口而不能監(jiān)聽(tīng) 80 端口. 下一篇文章, 我們將解決這個(gè)問(wèn)題, 方法是另外寫(xiě)一個(gè) server 來(lái)監(jiān)聽(tīng) 80 端口, 并通過(guò) redirecthttp 服務(wù)重定向?yàn)?https. 同時(shí), 我們還將學(xué)習(xí)如何使用 HSTS, 使瀏覽器默認(rèn)以更安全的 https 的方式訪問(wèn)我們的網(wǎng)站.


參考鏈接

https://imququ.com/post/letse...

https://github.com/Neilpang/a...

https://github.com/Neilpang/a...

https://github.com/Neilpang/a...

https://letsencrypt.org/

https://stackoverflow.com/que...

http://flask.pocoo.org/docs/1...

http://flask.pocoo.org/snippe...

http://werkzeug.pocoo.org/doc...

http://werkzeug.pocoo.org/doc...

https://jjayyyyyyy.github.io/...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/101683.html

相關(guān)文章

  • 啟用 https 的一點(diǎn)記錄

    摘要:最近博客從阿里云搬遷到騰訊云,也修改了幾個(gè)程序上的,順便也啟用了,記錄一下。是按流量計(jì)費(fèi)的,感覺(jué)沒(méi)必要,所以使用自定義域名了還得充值塊錢(qián)如果使用域名的話需要上傳證書(shū)和私鑰的內(nèi)容,這里的證書(shū)推薦使用騰訊云的免費(fèi)證書(shū),年有效期,不用頻繁續(xù)簽。 近兩年越來(lái)越多的網(wǎng)站開(kāi)始使用 https,https 是一個(gè)基于 http 協(xié)議開(kāi)發(fā),但是使用了 TLS/SSL 加密了傳輸數(shù)據(jù),所以,簡(jiǎn)單點(diǎn)說(shuō) h...

    animabear 評(píng)論0 收藏0
  • Web 開(kāi)發(fā)學(xué)習(xí)筆記(4) --- 重定向與HSTS

    摘要:回顧通過(guò)前幾篇文章的內(nèi)容我們已經(jīng)搭建了基于框架的一個(gè)簡(jiǎn)單的應(yīng)用的代碼如下此外我們還為其申請(qǐng)了公網(wǎng)和域名并且部署了的證書(shū)現(xiàn)在當(dāng)我們?cè)跒g覽器地址欄輸入即可訪問(wèn)我們的網(wǎng)站不過(guò)我們的網(wǎng)站目前還存在幾個(gè)問(wèn)題無(wú)法訪問(wèn)每次都需要用戶手動(dòng)輸入前綴以制定形式 回顧 通過(guò)前幾篇文章的內(nèi)容, 我們已經(jīng)搭建了基于 Flask 框架的一個(gè)簡(jiǎn)單的 Web 應(yīng)用, server.py 的代碼如下 from f...

    kevin 評(píng)論0 收藏0
  • Nginx部署HTTPS服務(wù)過(guò)程與異常處理實(shí)踐

    摘要:當(dāng)點(diǎn)擊檢查配置之后,如果阿里云能夠正常訪問(wèn),則會(huì)在左側(cè)給出提示,現(xiàn)在可以返回證書(shū)列表,在列表中可以看到當(dāng)前狀態(tài)為審核中,如下圖審核因?yàn)椴恍枰藶楦深A(yù),所以很快就能下發(fā)證書(shū),筆者下發(fā)證書(shū)的時(shí)間大約是分鐘左右。 一、背景 筆者所在團(tuán)隊(duì)需要開(kāi)發(fā)ios的APP,而apptstore應(yīng)用商店審核需要應(yīng)用使用https,所以需要配置https證書(shū),筆者將此次配置的過(guò)程與遇到的一些問(wèn)題記錄下來(lái),方便...

    Scliang 評(píng)論0 收藏0
  • Nginx部署HTTPS服務(wù)過(guò)程與異常處理實(shí)踐

    摘要:當(dāng)點(diǎn)擊檢查配置之后,如果阿里云能夠正常訪問(wèn),則會(huì)在左側(cè)給出提示,現(xiàn)在可以返回證書(shū)列表,在列表中可以看到當(dāng)前狀態(tài)為審核中,如下圖審核因?yàn)椴恍枰藶楦深A(yù),所以很快就能下發(fā)證書(shū),筆者下發(fā)證書(shū)的時(shí)間大約是分鐘左右。 一、背景 筆者所在團(tuán)隊(duì)需要開(kāi)發(fā)ios的APP,而apptstore應(yīng)用商店審核需要應(yīng)用使用https,所以需要配置https證書(shū),筆者將此次配置的過(guò)程與遇到的一些問(wèn)題記錄下來(lái),方便...

    lavor 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<