下圖是我站點的初始化樣子,能夠看到只是輸出一個字符串,啥也沒有,而且沒有https。
這無所謂,由於咱們的重點是https,而不是網站內容nginx
接下來就是配置https的關鍵步驟了,其實只須要三步而已:服務器
申請證書session
修改Nginx的vhost配置文件網站
重啓Nginxspa
登陸騰訊雲->進入管理中心,出現下圖:code
而後鼠標放到紅色框的地方,會出現下拉框,點擊上圖中箭頭指的位置->ssL證書管理,出現下圖:server
若是您尚未使用過,列表應該是空的,而後點擊上圖中紅色框中的申請證書按鈕,出現下圖:blog
咱們能夠直接使用默認的免費版證書,點擊上圖中肯定按鈕,出現下圖:ip
在這個頁面,在通用名稱一欄輸入域名,在申請郵箱一欄輸入有限,其餘可選,下圖以個人爲例:ssl
而後點擊下一步,會讓你驗證,直接選擇 自動DNS驗證
而後點擊上圖中確認申請,會彈框提示已提交,而後到列表中就能看到相似的下圖:
在這個列表中,狀態一列,我這裏顯示的已頒發,實際上這裏應該是審覈中,由於我這個域名以前已經申請過了,因此大家操做完回到這一步,顯示的是審覈中,而後騰訊審覈的效率仍是挺快的,幾分鐘後就頒發下來了。
證書頒發下來以後,而後點擊下載,把這個證書下載下來,下載下來是個壓縮包,解壓以後,打開目錄,出現下圖:
上圖中內置了四種服務環境,選擇本身對應的服務環境,若是沒有您的環境,可聯繫騰訊雲,我這裏是Nginx:
而後把上圖中這兩個文件上傳到服務器的Nginx配置文件目錄,我我的是上傳到/usr/local/nginx/conf
,可是我有個強迫症,因此我在這個conf目錄建立了一個ssl目錄,而後在ssl目錄中,存放了一堆目錄,每一個目錄都表明的是一個域名,每一個目錄中存放的就是該域名對應的這兩個crt和key文件,上傳方式多種,我用的是sftp上傳,挺方便
上傳完了以後,就開始配置域名對應的vhost文件了,完整配置以下:
下面是上圖中完整的核心代碼
server { listen 80; server_name test.sailengsi.com;#換成你的域名 return 301 https://$server_name$request_uri; } server { listen 443; server_name test.sailengsi.com;#換成你的域名 ssl on; ssl_certificate ssl/test/1_test.sailengsi.com_bundle.crt;#證書文件 ssl_certificate_key ssl/test/2_test.sailengsi.com.key;#祕鑰文件 ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; }
解釋一下,第二個server,你們確定能明白,這是官方給的實例,具體可參考文末給的連接。
第一個server,是爲了把80端口給重定向到443,也就是把http的訪問重定向到https,否則,直接訪問https是沒問題,可是用戶訪問時,可能就直接輸入域名啥的,這個時候默認走的是80端口,因此咱們經過這一步直接重定向,就作到了全站https。
ssl配置中有個注意的地方:
ssl_certificate
和ssl_certificate_key
,後面的引入的路徑,要麼是絕對路徑,從/
開始,要麼就像我這樣,要麼直接在當前目錄下開始找,不要寫./
或者../
啥的,Nginx不支持這種路徑,會報錯,會報錯,會報錯!!!配置完成以後,重啓如下命令重啓Nginx:
/usr/local/nginx/sbin/nginx -s reload
而後,再次刷新頁面,就會發現,直接變成https,成功的界面以下圖