Nginx配置為HTTPS的完整步驟(支持?SSL/TLS?加密)
Nginx配置為HTTPS(支持 SSL/TLS 加密)
步驟 1:獲取 SSL證書
你可以選擇使用 Let's Encrypt 提供的免費(fèi) SSL 證書,或者購買其他 CA(證書頒發(fā)機(jī)構(gòu))提供的證書。以 Let's Encrypt 為例:
使用 Let's Encrypt 獲取免費(fèi)證書
- 安裝 Certbot(Let's Encrypt 官方工具):
- sudo yum install epel-release -y
- sudo yum install certbot python3-certbot-nginx -y
- 獲取 SSL 證書:
假設(shè)你有一個(gè)域名(例如 your_domain.com)并且已經(jīng)配置了該域名指向你的服務(wù)器 IP。
運(yùn)行以下命令來請求證書:
sudo certbot --nginx -d your_domain.com
Certbot 會自動(dòng)生成證書并配置 Nginx,使其支持 HTTPS。如果配置成功,Certbot 會自動(dòng)更新你的 Nginx 配置文件,將 HTTP 重定向到 HTTPS。
手動(dòng)獲取 SSL 證書
如果你購買了 SSL 證書,通常證書提供商會提供 .crt 和 .key 文件。你需要將這些文件上傳到服務(wù)器。
- 證書文件(例如 your_domain.crt)
- 私鑰文件(例如 your_domain.key)
步驟 2:配置 Nginx使用 SSL證書
如果你使用 Certbot,Nginx 配置會自動(dòng)更新,但如果你手動(dòng)配置 SSL,請按照以下步驟進(jìn)行:
備份原始的 Nginx 配置文件:
在進(jìn)行修改之前,備份你的 Nginx 配置文件以防萬一:sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
編輯 Nginx 配置文件:
打開你的站點(diǎn)配置文件,通常位于 /etc/nginx/conf.d/ 或 /etc/nginx/sites-available/。
sudo vi /etc/nginx/nginx.conf
如果你使用了 Certbot,Nginx 的 SSL 配置可能已經(jīng)完成。如果是手動(dòng)配置,添加以下 SSL 配置:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
# 301 重定向 HTTP 到 HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your_domain.com www.your_domain.com;
# SSL 配置
ssl_certificate /etc/nginx/ssl/your_domain.crt;
ssl_certificate_key /etc/nginx/ssl/your_domain.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 強(qiáng)制使用最新的 SSL 協(xié)議
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...';
ssl_prefer_server_ciphers on;
# 其他配置
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}- ssl_certificate:你的 SSL 證書 文件路徑。
- ssl_certificate_key:你的 SSL 私鑰 文件路徑。
- ssl_protocols:配置支持的 SSL/TLS 協(xié)議。
- ssl_ciphers:設(shè)置強(qiáng)加密的密碼套件。
測試 Nginx 配置:
在重新加載 Nginx 之前,先測試配置文件是否正確:
sudo nginx -t
如果顯示 syntax is ok,表示配置沒有問題。
重新加載 Nginx:
重新加載 Nginx 配置以應(yīng)用更改:
sudo systemctl reload nginx
步驟 3:自動(dòng)更新 SSL證書(如果使用 Let's Encrypt)
如果你使用的是 Let's Encrypt,你可以通過 Certbot 自動(dòng)更新證書。Certbot 默認(rèn)會設(shè)置自動(dòng)續(xù)期,證書將在到期前自動(dòng)更新。
可以通過以下命令手動(dòng)測試自動(dòng)續(xù)期:
sudo certbot renew --dry-run
步驟 4:確保防火墻允許 HTTPS流量
確保 443 端口(HTTPS)已經(jīng)打開,并且防火墻允許該端口的流量。你可以使用以下命令查看防火墻規(guī)則,并允許 443 端口:
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent sudo firewall-cmd --reload
步驟 5:訪問 HTTPS
現(xiàn)在,你可以通過 https://your_domain.com 來訪問你的網(wǎng)站。如果一切配置正確,訪問時(shí)會看到一個(gè)安全的 HTTPS 連接。
總結(jié)
到此這篇關(guān)于Nginx配置為HTTPS的文章就介紹到這了,更多相關(guān)Nginx配置為HTTPS內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx如何獲取自定義請求header頭和URL參數(shù)詳解
這篇文章主要給大家介紹了關(guān)于Nginx如何獲取自定義請求header頭和URL參數(shù)的相關(guān)資料,本文適用于需要在nginx里獲取http請求頭信息或者傳遞的參數(shù)進(jìn)行一些計(jì)算和處理的情況,需要的朋友可以參考下2022-07-07
網(wǎng)頁502?Bad?Gateway?nginx/1.20.1報(bào)錯(cuò)的原因與解決方法
502 bad gateway nginx/1.20.1 是一個(gè)錯(cuò)誤提示,通常出現(xiàn)在訪問網(wǎng)站時(shí)出現(xiàn)問題,這篇文章主要給大家介紹了關(guān)于網(wǎng)頁502?Bad?Gateway?nginx/1.20.1報(bào)錯(cuò)的原因與解決方法,需要的朋友可以參考下2024-03-03
Nginx+PHP(FastCGI)搭建高并發(fā)WEB服務(wù)器(自動(dòng)安裝腳本)第二版
Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建勝過Apache十倍的Web服務(wù)器(第5版) 編寫2011-04-04
使用Nginx+Tomcat實(shí)現(xiàn)負(fù)載均衡的全過程
很多用到nginx的地方都是作為靜態(tài)伺服器,這樣可以方便緩存那些靜態(tài)文件,比如CSS,JS,html,htm等文件,下面這篇文章主要給大家介紹了關(guān)于使用Nginx+Tomcat實(shí)現(xiàn)負(fù)載均衡的相關(guān)資料,需要的朋友可以參考下2022-05-05
Nginx可視化管理工具結(jié)合cpolar實(shí)現(xiàn)遠(yuǎn)程訪問的步驟詳解
Nginx Proxy Manager 是一個(gè)開源的反向代理工具,本文將給大家介紹在Linux 安裝Nginx Proxy Manager并且結(jié)合 cpolar內(nèi)網(wǎng)穿透工具實(shí)現(xiàn)遠(yuǎn)程訪問管理界面,同等,當(dāng)我們使用Nginx Proxy Manager配置其他本地服務(wù),并且需要遠(yuǎn)程訪問,也是同樣的方式,需要的朋友可以參考下2023-09-09
Nginx配置Vue項(xiàng)目Hash/History模式路由跳轉(zhuǎn)錯(cuò)誤的解決方案
這篇文章主要為大家詳細(xì)介紹了Nginx配置Vue項(xiàng)目Hash/History模式路由跳轉(zhuǎn)錯(cuò)誤的相關(guān)解決方案,文中的示例代碼講解詳細(xì),需要的小伙伴可以了解下2025-09-09
Nginx+Lua動(dòng)態(tài)加載黑名單的實(shí)現(xiàn)方案
本文給大家介紹Nginx+Lua動(dòng)態(tài)加載黑名單的完整技術(shù)實(shí)現(xiàn)方案,包含核心原理、代碼實(shí)現(xiàn)和性能優(yōu)化策略,感興趣的朋友跟隨小編一起看看吧2025-10-10

