国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

HTTPS 配置教程

Nosee / 1824人閱讀

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

本文首發地址:https://liluyang.me


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

引言 為什么要用 https

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

要需要掌握哪些知識?

擁有基礎的 Linux 系統知識,常用的 Shell 命令。

需要有什么資源?

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

如果你要在生產環境使用 https,請接著往下看:

一個服務器,一個域名,并且已經正確的將域名指向了你的服務器,并且擁有服務器的 SSH 權限

Tips: 需要注意的是如果是在國內阿里云或者騰訊云購買的域名請備案,否則即使你正確的配置了你的域名,可能也依然無法訪問你的服務器,因為在國內備案是必須的。

關鍵詞 http 和 https

簡單來說,http 是一個傳輸網頁內容的協議,比如你看到的 http 開頭的網站 http://www.163.com,其網頁上的文字、圖片、 CSSJS 等文件都是通過 http 協議傳輸到我們的瀏覽器,然后被我們看到。

https 可以理解為 HTTP over SSL/TLS ,好端端的 http 為什么需要 over SSL/TLS 呢,因為 http 是明文傳輸的,通過 http 協議傳輸的內容很容易被偷看和篡改,為了安全(你肯定不想被人偷看或者篡改網頁內容吧,比如網站銀行密碼什么的。)就為 http 協議再加上了一層 SSL/TLS 安全協議,所以就有了 https

SSL/TLS

HTTP over SSL/TLS 字面意思就是帶 安全套接層http 協議,內心純潔的同學也可以理解為 帶安全套的 http,因為帶了安全套,所以當然會比較安全(/(ㄒoㄒ)/~~)。其中 SSLSecure Sockets Layer 的縮寫,是 “安全套接層” 的意思。TLSTransport Layer Security 的縮寫,是 傳輸層安全協議 的意思。SSLTLS 是同一個東西的不同階段,理解為同一個東西也行,都是安全協議就對了。

CA

證書頒發機構(CA, Certificate Authority)即頒發數字證書的機構。是負責發放和管理數字證書的權威機構,并作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。

Let’s Encrypt

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

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

Certbot

Let’s Encrypt 官方推出的授信證書生成客戶端。可以在 DebianCentOS 等主流系統上運行

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

獲取證書

要升級到 https 首先要獲得 CA 簽發的安全證書文件,我們選擇的證書簽發機構是 Let’s Encrypt,目前 Let’s Encrypt 推薦的方法是安裝 Certbot 工具通過校驗服務器和域名的歸屬權方式來獲取證書

安裝Certbot

如果你的英文能力比較好,那么請訪問 Certbot官網 根據官方教程來下載,官方教程更加細致,出了問題也方便查看官方的第一手資料。當然你也可以根據以下命令來安裝 Certbot 工具,這里我們以 debian9 系統為例來安裝

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

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

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

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

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

如果執行成功,命令行會大致輸出以下參數表示成功:

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

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

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

第二種模式Standalone

如果你已經通過第一種模式生成證書成功,請跳過這里,直接看下一章

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

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

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

這時候我們的第一生成證書已經完成了,接下來就是配置我們的 web 服務器,啟用 HTTPS

如果生成失敗,并且你自己搜索之后又沒有能力解決,請在評論留言

如果生成失敗,并且你自己搜索之后又沒有能力解決,請在評論留言

如果生成失敗,并且你自己搜索之后又沒有能力解決,請在評論留言

安裝證書

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

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

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

# 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

到此為止,我們就已經成功的完成了 https 的配置。 現在打開我的博客 https://liluyang.com 就可以在瀏覽器端看到標有 安全 的網站標識字樣了,如下圖:

注意事項

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

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

http 請求轉發到 https

請在配置文件夾中添加以下配置,然后重啟 Nginx 即可

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

細心的同學可能會發現, https 證書的有效時間是非常短的,只有三個月,那么每隔三個月我們都要操作一次嗎?其實不是的,我們可以用過自動續訂的方式來刷新我們的證書有效時間。

測試自動續訂
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.
手動執行自動續訂
certbot renew -v
開啟自動續訂

自動續訂也可以用 certbot 來實現,自動續訂之后會更新 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 使用教程,免費的SSL證書,讓你的網站擁抱 HTTPS》

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

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

~


廣告:掃碼關注 知乎日報 小程序客戶端

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11490.html

相關文章

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

    摘要:服務器部署最后一篇文章,部署證書,升級為,其實網上相關教程有很多,但是略麻煩,本教程讓你一切從簡,分鐘搞定,免費一年哦申請證書免費申請的機構有很多,我用的是騰訊云的,進入騰訊云官網,云產品的證書管理,可免費申請。 nodejs服務器部署最后一篇文章,部署ssl證書,升級http為https,其實網上相關教程有很多,但是略麻煩,本教程讓你一切從簡,5分鐘搞定https,免費一年哦 申請s...

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

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

    SQC 評論0 收藏0
  • DevOps 基于Walle的小型持續集成實戰(三)Docker與Gitlab

    摘要:自動化測試和持續集成發布。在服務型環境中部署和調整數據庫或其他的后臺應用。容器與鏡像的關系類似于面向對象編程中的對象與類。容器容器是獨立運行的一個或一組應用。提供了龐大的鏡像集合供使用。 還在按照mysql安裝教程一步一步配置服務配置賬戶嗎?還在為每開一個新環境重新配置這些服務感到苦惱嗎?使用Docker,服務快速構建部署。解決你的研發時間,早點下班~現代技術,還不會docker你就落...

    since1986 評論0 收藏0

發表評論

0條評論

Nosee

|高級講師

TA的文章

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