在安全至關重要的數位時代,本指南將示範如何在升級不安全請求中配置升級不安全請求。 Web 開發中的這項關鍵安全功能會引導瀏覽器自動將 HTTP 請求升級為 HTTPS。這有助於確保客戶端和伺服器之間的所有通訊都經過加密,從而提高網站的整體安全性。在 NGINX 中配置此功能有助於為用戶維護安全的瀏覽體驗,並有助於提高 SEO 排名。
本指南將引導您完成在 NGINX 中設定升級不安全請求的步驟,確保所有 HTTP 流量都會重新導向到 HTTPS,從而增強 Web 伺服器的安全性。
在 Nginx 全域新增升級不安全請求
存取 Nginx 設定檔
透過存取 Nginx 設定檔來啟動該過程,通常位於 /etc/nginx/nginx.conf
。使用以下命令開啟檔案:
sudo nano /etc/nginx/nginx.conf
請務必注意,您需要管理權限才能編輯此文件。此步驟可確保您所做的任何修改都是安全且經過授權的。
插入升級不安全請求標頭
在 nginx.conf 檔案中,找到 http
堵塞。在此,您必須新增特定行,命令瀏覽器將所有 HTTP 請求升級為 HTTPS。此增強功能對於保護您網站的資料傳輸至關重要。插入以下行:
add_header Content-Security-Policy "upgrade-insecure-requests";
設定範例:
http {
...
add_header Content-Security-Policy "upgrade-insecure-requests";
...
}
測試升級不安全請求處於活動狀態
該指令透過確保所有請求自動升級到安全的 HTTPS 連接,從而保護用戶資料並提高可信度,在網站安全中發揮著至關重要的作用。
驗證升級不安全請求的激活
實施變更後,重新啟動 Nginx 以套用它們。使用這個指令:
sudo systemctl restart nginx
若要確認標頭的激活,請使用下列工具執行測試 curl
。此工具可協助您檢查網站的回應標頭。執行以下命令:
curl -I http://yourwebsite.com
尋找 Content-Security-Policy: upgrade-insecure-requests
響應中的行。它的存在確認了對不安全請求的升級已成功啟動。
預期終端輸出:
HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Date: Wed, 20 Dec 2023 12:00:00 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Content-Security-Policy: upgrade-insecure-requests
...
在 Nginx 伺服器區塊中新增升級不安全請求
第 1 步:存取 Nginx 伺服器區塊配置
首先訪問您的網域的特定伺服器區塊。這通常位於 /etc/nginx/sites-available/yourdomain 中。若要編輯此文件,請使用以下命令以確保您擁有必要的管理權限:
sudo nano /etc/nginx/sites-available/yourdomain
此步驟對於對 Nginx 設定進行直接的、特定於網域的設定變更至關重要。
在 Nginx 請求標頭中設定升級不安全
在 Nginx 伺服器區塊配置中,重點是透過新增以下內容來增強安全性: upgrade-insecure-requests
指示。這應該放在 location /
堵塞。此指令指示瀏覽器將所有 HTTP 請求切換到更安全的 HTTPS,從而增強網站的資料安全性。
新增以下配置:
server {
...
location / {
add_header Content-Security-Policy "upgrade-insecure-requests";
}
...
}
此設定有助於保護單一伺服器區塊,特別是當您在同一 Nginx 伺服器上託管多個網域或子網域時。
驗證升級不安全請求的功能
儲存變更後,重新啟動 Nginx 以確保新設定生效:
sudo systemctl restart nginx
若要確認標頭處於活動狀態,請使用類似的工具 curl
檢查 HTTP 回應標頭:
curl -I http://yourdomain.com
與上一節一樣,在回應中尋找 Content-Security-Policy:upgrade-insecure-requests。這確認標頭已正確實現並且對於您的特定伺服器區塊處於活動狀態。
Nginx 升級安全性請求:進階範例
根據請求方法有條件升級
此設定非常適合需要根據 HTTP 請求方法區分行為的場景。它選擇性地應用 Upgrade-insecure-requests 標頭,避免將其用於可能導致資料提交問題的敏感 POST 請求。
map $request_method $upgrade_insecure {
POST 0;
default 1;
}
server {
...
location / {
if ($upgrade_insecure) {
add_header Content-Security-Policy "upgrade-insecure-requests";
}
...
}
}
使用者代理特定升級
根據用戶的瀏覽器自訂升級流程對於相容性至關重要。此配置僅針對特定使用者代理程式(例如 Chrome 或 Firefox)啟動升級,從而提供更有針對性的方法。
map $http_user_agent $upgrade_condition {
~*chrome 1;
~*firefox 1;
default 0;
}
server {
...
location / {
if ($upgrade_condition) {
add_header Content-Security-Policy "upgrade-insecure-requests";
}
...
}
}
特定於路徑的升級應用程式
將安全性升級應用於網站的特定區域可能至關重要,尤其是在只有某些部分處理敏感資訊的環境中。此設定支援指定路徑的升級,例如 /secure-area/
.
server {
...
location /secure-area/ {
add_header Content-Security-Policy "upgrade-insecure-requests";
...
}
location / {
...
}
}
將升級與附加安全標頭集成
將 Upgrade-insecure-requests 指令與其他安全標頭結合可以增強伺服器的整體安全性。這種綜合方法非常適合需要強大安全措施的環境。
server {
...
location / {
add_header Content-Security-Policy "upgrade-insecure-requests; default-src https:";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options SAMEORIGIN;
...
}
}
使用自訂日誌記錄實施升級
此配置有助於在監視和日誌記錄必不可少的環境中追蹤升級過程。它記錄從 HTTP 升級到 HTTPS 的請求,有助於安全審核和分析。
map $scheme $log_upgrade {
http 1;
default 0;
}
server {
...
location / {
if ($log_upgrade) {
access_log /var/log/nginx/upgrade.log;
add_header Content-Security-Policy "upgrade-insecure-requests";
}
...
}
}
這些進階配置提供了對如何以及何時從 HTTP 升級到 HTTPS 進行細緻入微的控制,滿足特定需求並增強 Nginx 伺服器的安全性和功能。
結論
透過在 NGINX 中設定升級不安全請求,您可以確保所有 HTTP 流量自動升級到 HTTPS,從而增強網站的安全性。此配置不僅可以保護用戶數據,還有助於提高網站的搜尋引擎優化 (SEO)。定期檢查和更新您的 NGINX 設定以保持最佳的安全性和效能。知道您的網路流量是安全且加密的,讓您高枕無憂。