2. 安裝 SSL
證書
將上面生成的 SSL 證書文件放置到位于 /etc/nginx/ssl/
目錄中。確保已經(jīng)擁有了服務(wù)器私鑰(server.key
)和證書文件(server.crt
或 server.crt
)。
3. 配置 Nginx
支持 HTTPS
3.1. 打開 Nginx 配置文件
Nginx 的配置文件通常位于 /etc/nginx/ 目錄下,具體取決于你的系統(tǒng)和 Nginx 安裝方式。大部分情況下,站點(diǎn)特定的配置在 /etc/nginx/sites-available/ 中。
3.2. 修改或增加一個server塊
在 /etc/nginx/sites-available/default 配置文件中,將文件中的內(nèi)容全部替換為下面的 server 模塊(或者新建一個使用 SSL 的 server 塊),內(nèi)容如下:
server {
listen 443 ssl;
server_name _;
# server_name your-domain.com; # 沒有域名則直接寫一個下劃線即可
ssl_certificate /etc/nginx/ssl/server.crt; # 修改為證書路徑
ssl_certificate_key /etc/nginx/ssl/server.key; # 修改為私鑰路徑
location / {
proxy_pass http://127.0.0.1:8080; # 修改為 http 服務(wù)地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
- 替換 your-domain.com 為真實(shí)的域名,沒有域名則直接寫一個下劃線(_)即可。
listen 443 ssl
告訴 Nginx 在 443 端口上監(jiān)聽 SSL 連接。ssl_certificate
和ssl_certificate_key
指令分別指向你的證書文件和私鑰文件的實(shí)際路徑。
4. 重啟 Nginx
保存并關(guān)閉配置文件,然后運(yùn)行以下命令來檢查新的配置是否有語法錯誤:
sudo nginx -t
如果這個命令沒有報錯,就可以安全地重啟 Nginx:
sudo systemctl restart nginx
nginx 重啟成功后,將可以在瀏覽器上通過 https 訪問服務(wù)器應(yīng)用了。由于使用的是自簽名證書,用戶的瀏覽器將顯示一個警告,提示他們此證書不受信任。這對于測試和開發(fā)環(huán)境可能沒問題,但是如果計(jì)劃在生產(chǎn)環(huán)境中使用 SSL,應(yīng)該考慮從一個可信的證書頒發(fā)機(jī)構(gòu)獲取一個證書。
- 使用 nginx 作為反向代理后,使用 ssl 證書的示意圖:
5. HTTP 到 HTTPS 的重定向(可選)
如果希望所有的 HTTP 流量都自動跳轉(zhuǎn)到 HTTPS,可以在 Nginx 配置中添加以下內(nèi)容:
server {
listen 80;
server_name your-domain.com;
return 301 https://$host$request_uri;
}
這段配置會捕獲所有到端口 80(HTTP) 的請求,并將它們重定向到相同地址的 HTTPS 版本。