成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

HTTPS 配置教程

Nosee / 1788人閱讀

摘要:如果存在文件請優(yōu)先修改此文件,具體原因請百度配置重啟到此為止,我們就已經(jīng)成功的完成了的配置。

本文首發(fā)地址:https://liluyang.me


本文將以本站 http://liluyang.me 升級到 https://liluyang.me 的過程來分享一下 https 的原理,httphttps 的區(qū)別,以及如何將網(wǎng)站從 http 升級到 https。

引言 為什么要用 https

https 更安全。甚至為了安全,一個(gè)專業(yè)可靠的網(wǎng)站, https 是必須的。 FirefoxChrome 都計(jì)劃將沒有配置 SSL 加密的 https 網(wǎng)站標(biāo)記為不安全(貌似 Firefox50 已經(jīng)這么干了),目前它們也正在聯(lián)合其他相關(guān)的基金會與公司推動整個(gè)互聯(lián)網(wǎng) https 化,現(xiàn)在大家訪問的一些主要的網(wǎng)站。如 Google 多年前就已經(jīng)全部啟用 https ,國內(nèi)的淘寶、搜狗、知乎、百度等等也全面 https 了。甚至 Google 的搜索結(jié)果也正在給予 https 的網(wǎng)站更高的排名和優(yōu)先收錄權(quán)。

要需要掌握哪些知識?

擁有基礎(chǔ)的 Linux 系統(tǒng)知識,常用的 Shell 命令。

需要有什么資源?

如果你只是要測試 https,請查看Nginx 容器教程

如果你要在生產(chǎn)環(huán)境使用 https,請接著往下看:

一個(gè)服務(wù)器,一個(gè)域名,并且已經(jīng)正確的將域名指向了你的服務(wù)器,并且擁有服務(wù)器的 SSH 權(quán)限

Tips: 需要注意的是如果是在國內(nèi)阿里云或者騰訊云購買的域名請備案,否則即使你正確的配置了你的域名,可能也依然無法訪問你的服務(wù)器,因?yàn)樵趪鴥?nèi)備案是必須的。

關(guān)鍵詞 http 和 https

簡單來說,http 是一個(gè)傳輸網(wǎng)頁內(nèi)容的協(xié)議,比如你看到的 http 開頭的網(wǎng)站 http://www.163.com,其網(wǎng)頁上的文字、圖片、 CSSJS 等文件都是通過 http 協(xié)議傳輸?shù)轿覀兊臑g覽器,然后被我們看到。

https 可以理解為 HTTP over SSL/TLS ,好端端的 http 為什么需要 over SSL/TLS 呢,因?yàn)?http 是明文傳輸?shù)模ㄟ^ http 協(xié)議傳輸?shù)膬?nèi)容很容易被偷看和篡改,為了安全(你肯定不想被人偷看或者篡改網(wǎng)頁內(nèi)容吧,比如網(wǎng)站銀行密碼什么的。)就為 http 協(xié)議再加上了一層 SSL/TLS 安全協(xié)議,所以就有了 https。

SSL/TLS

HTTP over SSL/TLS 字面意思就是帶 安全套接層http 協(xié)議,內(nèi)心純潔的同學(xué)也可以理解為 帶安全套的 http,因?yàn)閹Я税踩?,所以?dāng)然會比較安全(/(ㄒoㄒ)/~~)。其中 SSLSecure Sockets Layer 的縮寫,是 “安全套接層” 的意思。TLSTransport Layer Security 的縮寫,是 傳輸層安全協(xié)議 的意思。SSLTLS 是同一個(gè)東西的不同階段,理解為同一個(gè)東西也行,都是安全協(xié)議就對了。

CA

證書頒發(fā)機(jī)構(gòu)(CA, Certificate Authority)即頒發(fā)數(shù)字證書的機(jī)構(gòu)。是負(fù)責(zé)發(fā)放和管理數(shù)字證書的權(quán)威機(jī)構(gòu),并作為電子商務(wù)交易中受信任的第三方,承擔(dān)公鑰體系中公鑰的合法性檢驗(yàn)的責(zé)任。

Let’s Encrypt

Let"s Encrypt 成立于 2015 年的數(shù)字證書認(rèn)證機(jī)構(gòu),成立的目的就是為了推行 https 協(xié)議在全世界的普及。主要贊助商包括電子前哨基金會、Mozilla基金會、Akamai以及思科。Let"s Encrypt 旨在以自動化流程消除手動創(chuàng)建和安裝證書的復(fù)雜流程,并推廣使萬維網(wǎng)服務(wù)器的加密連接無所不在,為安全網(wǎng)站提供免費(fèi)的 SSL/TLS 證書。

說人話就是 Let’s Encrypt 就是一個(gè)可以給我們頒發(fā)授信證書的 CA 組織。

Certbot

Let’s Encrypt 官方推出的授信證書生成客戶端??梢栽?Debian,CentOS 等主流系統(tǒng)上運(yùn)行

官方鏈接如下:https://certbot.eff.org/

獲取證書

要升級到 https 首先要獲得 CA 簽發(fā)的安全證書文件,我們選擇的證書簽發(fā)機(jī)構(gòu)是 Let’s Encrypt,目前 Let’s Encrypt 推薦的方法是安裝 Certbot 工具通過校驗(yàn)服務(wù)器和域名的歸屬權(quán)方式來獲取證書

安裝Certbot

如果你的英文能力比較好,那么請?jiān)L問 Certbot官網(wǎng) 根據(jù)官方教程來下載,官方教程更加細(xì)致,出了問題也方便查看官方的第一手資料。當(dāng)然你也可以根據(jù)以下命令來安裝 Certbot 工具,這里我們以 debian9 系統(tǒng)為例來安裝

# 下載 certbot,如果是 centOS 等內(nèi)核,可以使用 yum 命令
apt install certbot
生成證書

certbot 安裝成功后,我們有兩種模式來獲取證書

第一種模式 Webroot
certbot certonly --webroot -w /root/docker_nginx/html -d liluyang.me -d www.liluyang.me

這個(gè)命令會為 liluyang.comwww.liluyang.com 這兩個(gè)域名生成一個(gè)證書

--webroot 模式會在 /root/docker_nginx/html 中創(chuàng)建 .well-known 文件夾,這個(gè)文件夾里面包含了一些驗(yàn)證文件,certbot 會通過訪問 example.com/.well-known/acme-challenge 來驗(yàn)證你的域名是否綁定的這個(gè)服務(wù)器。這個(gè)文件夾就是你 Nginxindex.html 所在的目錄,請自行根據(jù)自己服務(wù)器 Nginx 的配置情況修改這個(gè)參數(shù)。

如果執(zhí)行成功,命令行會大致輸出以下參數(shù)表示成功:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/liluyang.me/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/liluyang.me/privkey.pem
   Your cert will expire on 2019-07-01. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let"s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

以上信息中包含了生成后的證書的位置,過期時(shí)間等信息,根據(jù)提示信息我們打開 /etc/letsencrypt/live/ 文件夾,檢查這個(gè)文件夾中是否有你生成的對應(yīng)網(wǎng)站的證書文件,如果成功,應(yīng)該如下圖所示:

這個(gè)命令在大多數(shù)情況下都可以滿足需求,如果失敗了,請看下一種模式。

第二種模式Standalone

如果你已經(jīng)通過第一種模式生成證書成功,請?zhí)^這里,直接看下一章

但是有些時(shí)候我們的一些服務(wù)并沒有根目錄,例如一些微服務(wù),這時(shí)候使用 --webroot 就走不通了。certbot 還有另外一種模式 --standalone, 這種模式不需要指定網(wǎng)站根目錄,他會自動啟用服務(wù)器的 443 端口,來驗(yàn)證域名的歸屬。我們有其他服務(wù)(例如nginx)占用了 443 端口,就必須先停止這些服務(wù),在證書生成完畢后,再啟用。

certbot certonly --standalone -d example.com -d www.example.com

證書生成完畢后,我們可以在 /etc/letsencrypt/live/ 目錄下看到對應(yīng)域名的文件夾,里面存放了指向證書的一些快捷方式。

這時(shí)候我們的第一生成證書已經(jīng)完成了,接下來就是配置我們的 web 服務(wù)器,啟用 HTTPS。

如果生成失敗,并且你自己搜索之后又沒有能力解決,請?jiān)谠u論留言

如果生成失敗,并且你自己搜索之后又沒有能力解決,請?jiān)谠u論留言

如果生成失敗,并且你自己搜索之后又沒有能力解決,請?jiān)谠u論留言

安裝證書

證書生成生成后,我們還要做最后的一步就是把證書的配置信息添加到 nginxconf 目錄的 certs 文件夾中。我個(gè)人的 Nginx 是通過 docker 鏡像的方式運(yùn)行的,并且我將本地的 /root/docker_nginx/conf 文件夾設(shè)置為了 Nginx 的配置文件夾,所以現(xiàn)在我們將證書 cert.pemprivkey.pem 拷貝到這個(gè)目錄。配置目錄如下

Nginx 的配置文件 nginx.conf 末尾添加以下配置,注意修改對應(yīng)的配置參數(shù),下面的配置模板僅供參考。

如果存在 conf.d/default.conf 文件請優(yōu)先修改此文件,具體原因請百度

# 443 https 配置
server {
    listen 443 ssl http2;
    server_name  liluyang.me www.liluyang.me;

    ssl                      on;
    ssl_certificate          /etc/nginx/certs/cert.pem;
    ssl_certificate_key      /etc/nginx/certs/privkey.pem;

    ssl_session_timeout  5m;

    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

重啟 Nginx

到此為止,我們就已經(jīng)成功的完成了 https 的配置。 現(xiàn)在打開我的博客 https://liluyang.com 就可以在瀏覽器端看到標(biāo)有 安全 的網(wǎng)站標(biāo)識字樣了,如下圖:

注意事項(xiàng)

如果是 docker 部署的 nginx,最后重啟啟動 docker 時(shí)要將 443(https) 端口映射出來,否則無法訪問服務(wù)器的 443(https) 端口的。

docker run 
  --volume "$PWD/html":/usr/share/nginx/html 
  --volume "$PWD/conf":/etc/nginx 
  -p 80:80 
  -p 443:443 
  -d 
  nginx
可選配置 強(qiáng)制使用 https 訪問網(wǎng)站

http 請求轉(zhuǎn)發(fā)到 https

請?jiān)谂渲梦募A中添加以下配置,然后重啟 Nginx 即可

server {
    listen 80;
    server_name liluyang.me www.liluyang.me;
    return 301 https://liluyang.me;
}
自動續(xù)訂

細(xì)心的同學(xué)可能會發(fā)現(xiàn), https 證書的有效時(shí)間是非常短的,只有三個(gè)月,那么每隔三個(gè)月我們都要操作一次嗎?其實(shí)不是的,我們可以用過自動續(xù)訂的方式來刷新我們的證書有效時(shí)間。

測試自動續(xù)訂
certbot renew --dry-run

如果測試成功,會生成如下提示:

Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/liluyang.me.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator webroot, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for liluyang.me
http-01 challenge for www.liluyang.me
Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed without reload, fullchain is
/etc/letsencrypt/live/liluyang.me/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating "certbot renew" close to cert expiry
**          (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/liluyang.me/fullchain.pem (success)
** DRY RUN: simulating "certbot renew" close to cert expiry
**          (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
手動執(zhí)行自動續(xù)訂
certbot renew -v
開啟自動續(xù)訂

自動續(xù)訂也可以用 certbot 來實(shí)現(xiàn),自動續(xù)訂之后會更新 pem 文件到 /etc/letsencrypt/live/example.com/ 。如果你的 nginx 配置沒有直接指向 /etc/letsencrypt/live/example.com/ 文件夾,請記得將 pem 文件夾拷貝到你的配置文件夾中

certbot renew --quiet --no-self-upgrade
參考鏈接

《Nginx 容器教程》 BY 阮一峰

《https 教程參考鏈接》 BY 阮一峰

《Let"s Encrypt 證書生成工具Certbot》 BY Let"s Encrypt官方

《Let"s Encrypt 入門教程》

《Let"s Encrypt 使用教程,免費(fèi)的SSL證書,讓你的網(wǎng)站擁抱 HTTPS》

《HTTPS 簡介及使用官方工具 Certbot 配置 Let’s Encrypt SSL 安全證書詳細(xì)教程》

《數(shù)字證書及 CA 的掃盲介紹和工作原理》

~


廣告:掃碼關(guān)注 知乎日報(bào) 小程序客戶端

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/11490.html

相關(guān)文章

  • nodejs服務(wù)器部署教程四,部署ssl證書,升級為https

    摘要:服務(wù)器部署最后一篇文章,部署證書,升級為,其實(shí)網(wǎng)上相關(guān)教程有很多,但是略麻煩,本教程讓你一切從簡,分鐘搞定,免費(fèi)一年哦申請證書免費(fèi)申請的機(jī)構(gòu)有很多,我用的是騰訊云的,進(jìn)入騰訊云官網(wǎng),云產(chǎn)品的證書管理,可免費(fèi)申請。 nodejs服務(wù)器部署最后一篇文章,部署ssl證書,升級http為https,其實(shí)網(wǎng)上相關(guān)教程有很多,但是略麻煩,本教程讓你一切從簡,5分鐘搞定https,免費(fèi)一年哦 申請s...

    Lin_R 評論0 收藏0
  • 史上最簡單的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Co

    摘要:程序的入口類打開網(wǎng)址訪問,網(wǎng)頁顯示這就說明,從獲取了的屬性,而是從倉庫讀取的如圖本文源碼下載四參考資料優(yōu)秀文章推薦史上最簡單的教程終章史上最簡單的教程第一篇服務(wù)的注冊與發(fā)現(xiàn)史上最簡單的教程第七篇高可用的分布式配置中心 轉(zhuǎn)載請標(biāo)明出處: http://blog.csdn.net/forezp/a...本文出自方志朋的博客在上一篇文章講述zuul的時(shí)候,已經(jīng)提到過,使用配置服務(wù)來保存各個(gè)服...

    SQC 評論0 收藏0
  • DevOps 基于Walle的小型持續(xù)集成實(shí)戰(zhàn)(三)Docker與Gitlab

    摘要:自動化測試和持續(xù)集成發(fā)布。在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺應(yīng)用。容器與鏡像的關(guān)系類似于面向?qū)ο缶幊讨械膶ο笈c類。容器容器是獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用。提供了龐大的鏡像集合供使用。 還在按照mysql安裝教程一步一步配置服務(wù)配置賬戶嗎?還在為每開一個(gè)新環(huán)境重新配置這些服務(wù)感到苦惱嗎?使用Docker,服務(wù)快速構(gòu)建部署。解決你的研發(fā)時(shí)間,早點(diǎn)下班~現(xiàn)代技術(shù),還不會docker你就落...

    since1986 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<