<sub id="ndxjt"></sub>

          <track id="ndxjt"><big id="ndxjt"><listing id="ndxjt"></listing></big></track>

                    <sub id="ndxjt"><meter id="ndxjt"></meter></sub>
                     

                    讓網站永久擁有HTTPS - 申請免費SSL證書并自動續期

                    http://www.36065980.com 2018年11月01日13:44 浠水網

                    本文永久地址
                    為什么要用HTTPS
                    相關簡介
                    Let’s Encrypt
                    Certbot
                    便宜SSL


                    獲取HTTPS證書
                    命令行
                    安裝Certbot
                    申請證書


                    圖形化


                    部署HTTPS證書
                    設置HTTP強制跳轉HTTPS
                    命令行下設置證書自動續期
                    附:
                    其它環境下的證書部署
                    Nginx相關命令
                    crontab相關命令


                    參考文檔

                     

                     

                     

                    本文永久地址

                      http://www.lucien.ink/archives/81/

                    為什么要用HTTPS

                      網站沒有使用HTTPS的時候,瀏覽器一般會報不安全,而且在別人訪問這個網站的時候,很有可能會被運營商劫持,然后在網站里顯示一些莫名其妙的廣告。

                     

                      有HTTPS的時候,通俗地講所有的數據傳輸都會被加密,你和網站之間的數據交流也就更加安全。

                     

                     

                    相關簡介

                     

                    Let’s Encrypt

                      如果要啟用HTTPS,我們就需要從證書授權機構處獲取一個證書,Let’s Encrypt 就是一個證書授權機構。我們可以從 Let’s Encrypt 獲得網站域名的免費的證書。

                     

                    Certbot

                      Certbot是Let’s Encrypt推出的獲取證書的客戶端,可以讓我們免費快速地獲取Let’s Encrypt證書。

                     

                    便宜SSL

                      便宜SSL是一家國內的SSL證書提供商,同樣也擁有免費證書。而且提供豐富的工具: https://www.pianyissl.com/tools。

                     

                    獲取HTTPS證書

                      獲取SSL證書的過程大體上都一樣。既可以圖形化,也可以命令行,最后實現的效果都完全一樣,大家各取所需。

                     

                    命令行

                     

                    安裝Certbot

                      進入Certbot的官網,選擇你所使用的軟件和系統環境,然后就會跳轉到對應版本的安裝方法,以Ubuntu + Nginx為例。

                     

                    sudo apt-get update
                    sudo apt-get install software-properties-common
                    sudo add-apt-repository ppa:certbot/certbot
                    sudo apt-get update
                    sudo apt-get install certbot 12345

                     

                    申請證書

                      安裝完成后執行:

                     

                    certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com1

                      這條命令的意思是為以/var/www/example為根目錄的兩個域名example.com和www.example.com申請證書。

                      如果你的網站沒有根目錄或者是你不知道你的網站根目錄在哪里,可以通過下面的語句來實現:

                     

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

                      使用這個語句時Certbot會自動啟用網站的443端口來進行驗證,如果你有某些服務占用了443端口,就必須先停止這些服務,然后再用這種方式申請證書。

                      證書申請完之后,Certbot會告訴你證書所在的目錄,一般來說會在/etc/letsencrypt/live/這個目錄下。

                     

                    圖形化

                      進入便宜SSL的官網https://www.pianyissl.com,注冊了賬號之后,選擇那個體驗版的免費測試,然后點確認購買。

                     

                      輸入域名并點擊生成CSR并提交申請按鈕。

                     

                      點擊確定按鈕。

                     

                      接下來會選擇驗證方式。

                     

                      這里我選擇郵箱驗證方式,其它另外兩種依照你的個人情況而定,反正就是為了驗證域名是不是你的而已。

                     

                      大約過幾分鐘,郵箱會收到一封驗證郵件,如下圖,復制②指向的一串驗證碼,點擊①處的Here鏈接。

                     

                      輸入驗證碼,點擊Next>按鈕。

                     

                      提示已經輸入正確的驗證碼,點擊Close Window。

                     

                      大約等到10分鐘左右,再次登陸https://www.pianyissl.com,進入個人中心,可以看到已經成功申請SSL證書,點擊查看詳情。

                     

                      此時你可以點擊箭頭所指的證書打包下載,然后免費的SSL證書就可以下載到本地了,下載后可以看到SSL壓縮包內的文件。

                     

                     

                    部署HTTPS證書

                      找到網站的Nginx配置文件,找到listen 80;,修改為listen 443;在這一行的下面添加以下內容:

                     

                    ssl on;
                    ssl_certificate XXX/fullchain.pem;  修改為fullchain.pem所在的路徑
                    ssl_certificate_key XXX/privkey.pem;  修改為privkey.pem所在的路徑
                    ssl_session_timeout 5m;
                    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
                    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                    ssl_prefer_server_ciphers on;1234567

                      保存退出后,通過nginx -t來檢查配置文件是否正確,有錯誤的話改之即可。配置文件檢測正確之后,通過nginx -s reload來重載配置文件。

                      然后通過訪問https://example.com來查看是否配置成功。

                      如果發現無法訪問或者是加載不出來的話檢查一下443端口有沒有開啟!

                     

                    設置HTTP強制跳轉HTTPS

                      上一步成功之后大家可能會發現通過原來的http://example.com無法訪問網頁了,因為HTTP默認走的是80端口,我們剛才將其修改為443端口了。在這里我們可以在配置文件的最后一行加入以下代碼:

                     

                    server {
                        listen 80;
                        server_name example.com;  這里修改為網站域名
                        rewrite ^(.*)$ https://$host$1 permanent;
                    }12345

                      意思是每一個通過80端口訪問的請求都會強制跳轉到443端口,這樣一來訪問http://example.com的時候就會自動跳轉到https://example.com了。

                     

                    命令行下設置證書自動續期

                      有心的小伙伴可能會留意到我們剛才申請的整數的有效期只有90天,不是很長,可是我們可以通過Linux自帶的cron來實現自動續期,這樣就相當于永久了。

                      隨便找一個目錄,新建一個文件,名字隨便起,在這里以example為例,在里面寫入0 */12 * * * certbot renew --quiet --renew-hook "/etc/init.d/nginx reload",保存。

                      然后在控制臺里執行crontab example一切都OK了。原理是example里存入了一個每天檢查更新兩次的命令,這個命令會自動續期服務器里存在的來自Certbot的SSL證書。然后把example里存在的命令導入進Certbot的定時程序里。

                     

                    附:

                     

                    其它環境下的證書部署

                      https://www.pianyissl.com/support/

                    Nginx相關命令

                     

                    nginx -t  驗證配置是否正確
                    nginx -v  查看Nginx的版本號
                    service nginx start  啟動Nginx
                    nginx -s stop  快速停止或關閉Nginx
                    nginx -s quit  正常停止或關閉Nginx
                    nginx -s reload  重新載入配置文件123456

                     

                    crontab相關命令

                     

                    cat /var/log/cron  查看crontab日志
                    crontab -l  查看crontab列表
                    crontab -e  編輯crontab列表
                    systemctl status crond.service  查看crontab服務狀態
                    systemctl restart crond.service  重啟crontab12345

                     

                    參考文檔

                    https://lucien.ink/archives/81/
                    https://www.cnblogs.com/zoro-zero/p/6590503.html
                    http://blog.csdn.net/gsls200808/article/details/53486078
                    https://certbot.eff.org/#ubuntuxenial-other
                    http://nginx.org/en/docs/http/configuring_https_servers.html           
                          
                                   
                             
                    ---------------------
                    作者:LucienShui
                    來源:CSDN
                    原文:https://blog.csdn.net/xs18952904/article/details/79262646
                    版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


                    發表評論
                    上一篇Windows Server 2016 IIS10 設置HTTPS HTTP/2 并跑分到 A+
                    下一篇在阿里云里申請免費Https證書SSL
                    正在加載中……
                    湖北快三走势图

                          <sub id="ndxjt"></sub>

                            <track id="ndxjt"><big id="ndxjt"><listing id="ndxjt"></listing></big></track>

                                      <sub id="ndxjt"><meter id="ndxjt"></meter></sub>

                                            <sub id="ndxjt"></sub>

                                              <track id="ndxjt"><big id="ndxjt"><listing id="ndxjt"></listing></big></track>

                                                        <sub id="ndxjt"><meter id="ndxjt"></meter></sub>