針對網站升級https,整理了下http和https的一些分析,以及配置方法整理html
HTTP協議(超文本傳輸協議)是互聯網上應用最爲普遍的一種網絡協議,常被用於在web瀏覽器和網站服務器之間傳遞信息,http協議傳輸數據是以明文方式進行傳送,若是中途被截獲,就能夠讀取其中的信息。還記得以前公司某一臺醫療設備的登陸界面被截獲,頁面上都是廣告的狀況。nginx
爲了解決HTTP協議的這一缺陷,就延伸出HTTPS協議 (安全套接字層超文本傳輸協議),HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,爲web瀏覽器和服務器之間的通訊數據進行加密。
HTTPS協議的主要做用分爲兩種:web
若是一切正常,10 分鐘左右,申請的證書就會審覈經過。centos
證書申請是須要驗證域名的,阿里雲ssl證書的認證提供了三種瀏覽器
證書申請須要填寫的信息:安全
在域名的管理裏,由於我用了阿里雲的 DNS 解析服務,因此會自動添加一條 CNAME 記錄,這條記錄就是驗證域名全部權用的:服務器
在阿里雲證書管理目錄中,若是申請的證書經過審覈後,就能夠進行下載。能夠選擇下載不一樣的類型,常見的有nginx,以及apach等服務器。根據本身網站的類型,選擇下載對應的證書。上傳到服務器目錄中,解壓後會獲取到兩個文件,文件後綴分別是 .key,和 .pem。網絡
證書上傳服務器後,就須要去配置服務器。不一樣的服務器配置不同。由於個人項目運行環境是lnmp環境下。個人配置方法就是用的是nginx類型的。個人域名是 www.studytime.xin.session
登陸服務器ssh AliCloud
ssh
建立一個存儲證書的目錄:sudo mkdir -p /usr/local/nginx/ssl/studytime
把申請並下載下來的證書,上傳到上面建立的目錄的下面。
scp local_path root@ip:/usr/local/nginx/ssl/studytime 證書上傳後的路徑: /usr/local/nginx/ssl/studytime/1650160_studytime.xin.key /usr/local/nginx/ssl/studytime/1650160_studytime.xin.pem
能夠容許網站同時支持http以及https。http使用的默認斷後是80,https使用的默認頓口是443。
針對這個問題須要特殊說明下,服務器必須開啓響應的80和443端口給外網。通常服務器的安全組是默認開啓的,若沒有開啓能夠自行搜索處理,centos7怎麼開啓80和443端口等。
下面是一個基本的監聽 443 端口,使用了 SSL 證書的 NGINX 配置文件,建立一個配置文件:
touch /usr/local/nginx/conf/vhosts/studytime.conf
把下面的代碼粘貼進去:
server { listen 443; server_name www.studytime.xin; ssl on; root /data/wwwroot/blog; index index.html; ssl_certificate /usr/local/nginx/ssl/studytime/1650160_studytime.xin.pem; ssl_certificate_key /usr/local/nginx/ssl/studytime/1650160_studytime.xin.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL; ssl_prefer_server_ciphers on; }
上面的配置裏,ssl_certificate 與 ssl_certificate_key 這兩個指令指定使用了兩個文件,就是你下載的證書,解壓以後看到的那兩個文件,一個是 .pem,一個是 .key。你要把這兩個文件上傳到服務器上的某個目錄的下面。
從新加載 NGINX 服務:
sudo nginx -s reload
在瀏覽器上輸入帶 https 的網站地址:https://studytime.xin
若是正確的配置了讓服務器使用 SSL 證書,會在地址欄上顯示一個綠色的小鎖頭圖標。
點開那個小鎖頭,會顯示安全鏈接,再打開 詳細信息。
NGINX 配置使用 301 重定向,會讓對 HTTP 網頁的請求,重定向到 HTTPS 版本的網頁上。
:
server { listen 80; server_name studytime.xin www.studytime.xin; return 301 https://$host$request_uri; }
更多精彩內容,請關注做者博客,https://studytime.xin