0x00 為什麼要安裝證書信息傳輸的保密性數據交換的完整性信息的不可否認性交易者身份確定性如今各大瀏覽器廠商不斷推進Https安全訪問強制性要求,為了避免以後網站數據量增多時安裝證書造成不必要的麻煩(根據要求,使用Https時頁面內使用的鏈接包括圖片,js,css,socket,流媒體等都需要為Ht... ...
0x00 為什麼要安裝證書
- 信息傳輸的保密性
- 數據交換的完整性
- 信息的不可否認性
- 交易者身份確定性
如今各大瀏覽器廠商不斷推進Https安全訪問強制性要求,為了避免以後網站數據量增多時安裝證書造成不必要的麻煩(根據要求,使用Https時頁面內使用的鏈接包括圖片,js,css,socket,流媒體等都需要為Https鏈接),所以建議儘早安裝證書。
0x01 在騰訊雲申請TrustAsia免費SSL證書
該證書免費申請,有效期一年,只限單功能變數名稱(泛功能變數名稱收費)
登錄騰訊雲控制台SSL證書管理,選擇申請免費證書
選擇證書類型:亞洲誠信TrustAsia
填寫自己的功能變數名稱(圖片中的功能變數名稱為本文演示使用)
驗證方式推薦選擇手動DNS驗證,文件驗證會很慢而且麻煩
查看詳情
按提示去你的功能變數名稱管理頁面添加DNS解析(你在哪買的或者申請的功能變數名稱就去哪添加)
完成後在證書詳情頁面可以查看配置解析是否正確,如果正確只需要等待辦法機構掃描驗證就行了
驗證成功後,騰訊雲會給你發送郵件,你就可以在管理頁面下載證書了(一般只要幾分鐘就可以完成)
0x02 Nginx配置SSL證書
下載下來的壓縮包里有好幾種格式的證書,我們只需要Nginx的pem證書即可,解壓出來
將這crt和key兩個文件(公鑰和私鑰)修改好名字上傳到你的伺服器
修改nginx配置文件
vi /etc/nginx/nginz.conf
依此例子修改server配置
server#這個server用來實現http自動跳轉到https
{
listen 80;
server_name test.onbeta.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
#埠改成443
listen 443 ssl;
server_name test.onbeta.com;
root /var/www/test;
index index.html index.htm index.php;
#此處為ssl證書配置
ssl_certificate /etc/nginx/cert/test.onbeta.com.crt;
ssl_certificate_key /etc/nginx/cert/test.onbeta.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
location ~ .*\.php(\/.*)*$ {
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
重啟nginx
sudo service nginx restart
此時如果沒有報錯你就可以使用https訪問你的網站了
0x03 關於Windows下nginx配置
本文完全可以套用Windows下nginx的ssl證書配置,不過有一點需要註意的是:conf文件中文件路徑應該使用反斜杠\
ssl_certificate D:\\nginx\cert\ssl.crt;
ssl_certificate_key D:\\nginx\cert\ssl.key;
0x04 問題解決:您與此網站建立的連接並非完全安全
如果訪問你的網站瀏覽器地址欄沒有出現綠鎖,而且提示是“您與此網站建立的連接並非完全安全”,那麼原因可能是你的網頁引用了非https鏈接,查看源文件搜索"http://",想辦法修改掉這些不安全鏈接即可