首先區別Http與Https
HTTP:是互聯網上應用最為廣泛的一種網路協議,是一個客戶端和服務器端請求和應答的標準(TCP),用于從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少,
HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL,HTTPS協議的主要作用可以分為兩種:一種是建立一個資訊安全通道,來保證資料傳輸的安全;另一種就是確認網站的真實性,
配置 HTTPS 要用到私鑰 example.key 檔案和 example.crt 證書檔案
CSR:Cerificate Signing Request,證書簽署請求檔案,里面包含申請者的 DN(Distinguished Name,標識名)和公鑰資訊,在第三方證書頒發機構簽署證書的時候需要提供,證書頒發機構拿到 CSR 后使用其根證書私鑰對證書進行加密并生成 CRT 證書檔案,里面包含證書加密資訊以及申請者的 DN 及公鑰資訊
Key:證書申請者私鑰檔案,和證書里面的公鑰配對使用,在 HTTPS 『握手』通訊程序需要使用私鑰去解密客戶端發來的經過證書公鑰加密的亂數資訊,是 HTTPS 加密通訊程序非常重要的檔案,在配置 HTTPS 的時候要用到網路中有許多地方可以申請免費的證書,比如:
Let’s Encrypt 官網:https://letsencrypt.org
阿里云證書 官網:https://common-buy.aliyun.com/?commodityCode=cas
Freessl 官網:https://freessl.cn/
我是在阿里云上免費申請的


申請證書大概10分鐘就可以審核通過,然后就是下載證書,選擇nginx

然后把下載下來的兩個檔案放進nginx的根目錄路

然后進入nginx.conf中配置
server {
listen 443 ssl;
server_name ythan.top;
ssl_certificate ythan.top.pem;
ssl_certificate_key ythan.top.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
root /www/wordpress;
location / {
index index.php index.html index.htm;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
}
完了之后重啟nginx
nginx -s reload
記得打開服務器的443埠號

如果再次進去你的網站是自動下載一個php檔案,是因為chrome的快取導致,這個問題折騰了我好幾個小時,然后如果你原網站雖然有證書,但是顯示不安全的話就是應為你網站當中存在一些圖片來自http中,修改一下圖片的來源即可,
沒有證書和有證書相比較的效果:


最后一點,把網站強制跳轉到https的鏈接中,在nginx.conf組態檔中加入以下一段代碼:
rewrite ^(.*)$ https://$host$1 permanent;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/27148.html
標籤:Linux
上一篇:夜神模擬器導致系統崩潰
下一篇:vs2019卡在這里
