Nginx配置為HTTPS的完整步驟(支持?SSL/TLS?加密)
Nginx配置為HTTPS(支持 SSL/TLS 加密)
步驟 1:獲取 SSL證書
你可以選擇使用 Let's Encrypt 提供的免費(fèi) SSL 證書,或者購(gòu)買其他 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)行以下命令來(lái)請(qǐng)求證書:
sudo certbot --nginx -d your_domain.com
Certbot 會(huì)自動(dòng)生成證書并配置 Nginx,使其支持 HTTPS。如果配置成功,Certbot 會(huì)自動(dòng)更新你的 Nginx 配置文件,將 HTTP 重定向到 HTTPS。
手動(dòng)獲取 SSL 證書
如果你購(gòu)買了 SSL 證書,通常證書提供商會(huì)提供 .crt 和 .key 文件。你需要將這些文件上傳到服務(wù)器。
- 證書文件(例如 your_domain.crt)
- 私鑰文件(例如 your_domain.key)
步驟 2:配置 Nginx使用 SSL證書
如果你使用 Certbot,Nginx 配置會(huì)自動(dòng)更新,但如果你手動(dòng)配置 SSL,請(qǐng)按照以下步驟進(jìn)行:
備份原始的 Nginx 配置文件:
在進(jìn)行修改之前,備份你的 Nginx 配置文件以防萬(wàn)一: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)加密的密碼套件。
測(cè)試 Nginx 配置:
在重新加載 Nginx 之前,先測(cè)試配置文件是否正確:
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)會(huì)設(shè)置自動(dòng)續(xù)期,證書將在到期前自動(dòng)更新。
可以通過以下命令手動(dòng)測(cè)試自動(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 來(lái)訪問你的網(wǎng)站。如果一切配置正確,訪問時(shí)會(huì)看到一個(gè)安全的 HTTPS 連接。
總結(jié)
到此這篇關(guān)于Nginx配置為HTTPS的文章就介紹到這了,更多相關(guān)Nginx配置為HTTPS內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Nginx服務(wù)器中HTTP Headers相關(guān)的模塊配置使用
這篇文章主要介紹了詳解Nginx服務(wù)器中HTTP Headers相關(guān)的模塊配置使用,包括ngx_http_headers_module與它的增強(qiáng)版ngx_headers_more的配置使用講解,需要的朋友可以參考下2016-01-01
Centos基于Nginx搭建RTMP服務(wù)器的實(shí)現(xiàn)
本文主要介紹了Centos基于Nginx搭建RTMP服務(wù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
nginx和lvs各自的優(yōu)劣以及適合的使用環(huán)境
這篇文章主要介紹了nginx和lvs各自的優(yōu)劣以及適合的使用環(huán)境,幫助大家選擇符合需求的服務(wù)器,感興趣的朋友可以了解下2020-10-10
Nginx配置本地圖片服務(wù)器的實(shí)現(xiàn)
本文主要介紹了Nginx配置本地圖片服務(wù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
nginx的80端口無(wú)法被遠(yuǎn)程服務(wù)器訪問的問題解決
這篇文章主要介紹了nginx的80端口無(wú)法被遠(yuǎn)程服務(wù)器訪問的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07

