溫馨提示×

如何在Ubuntu上測試Nginx SSL

小樊
35
2025-10-19 04:19:53
欄目: 云計算

如何在Ubuntu上測試Nginx SSL配置

1. 準備工作:獲取SSL證書

在測試前需準備好SSL證書,可選擇自簽名證書(僅用于開發/內網)或Let’s Encrypt免費證書(推薦生產環境)。

  • 生成自簽名證書(適用于測試):
    運行以下命令生成私鑰(nginx-selfsigned.key)和自簽名證書(nginx-selfsigned.crt):
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/ssl/private/nginx-selfsigned.key \
    -out /etc/ssl/certs/nginx-selfsigned.crt
    
    命令會提示輸入國家、組織等信息,均可隨意填寫。
  • 獲取Let’s Encrypt證書(推薦生產):
    安裝Certbot工具并自動獲取證書:
    sudo apt update && sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
    
    Certbot會自動配置Nginx并設置證書自動續期。

2. 配置Nginx支持HTTPS

編輯Nginx配置文件(通常位于/etc/nginx/sites-available/default/etc/nginx/sites-available/yourdomain.conf),添加以下內容:

# HTTP重定向到HTTPS
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;  # 替換為你的域名或IP
    return 301 https://$host$request_uri;
}

# HTTPS配置
server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    # 證書路徑(自簽名證書替換為上述生成的路徑)
    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

    # 強化SSL配置(可選但推薦)
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # 網站根目錄(根據實際情況調整)
    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

保存配置文件。

3. 測試Nginx配置語法

在重新加載Nginx前,必須驗證配置文件語法是否正確,避免因配置錯誤導致服務中斷:

sudo nginx -t

若輸出nginx: configuration file /etc/nginx/nginx.conf test is successful,則表示配置正確。

4. 重新加載Nginx使配置生效

配置語法正確后,重新加載Nginx以應用更改:

sudo systemctl reload nginx

若需重啟Nginx(如修改了配置但未生效),可使用:

sudo systemctl restart nginx

5. 驗證HTTPS訪問

  • 瀏覽器訪問
    在瀏覽器中輸入https://yourdomain.com(或服務器IP),若配置正確,會看到瀏覽器地址欄顯示安全鎖圖標(自簽名證書會提示“不安全”,但可忽略繼續訪問)。
  • 命令行工具驗證
    使用curl查看SSL握手詳情:
    curl -v https://yourdomain.com
    
    輸出中會顯示SSL connection using TLSv1.3(表示TLS協議生效)及證書信息。

6. 檢查SSL配置安全性(可選但重要)

使用SSL Labs在線工具https://www.ssllabs.com/ssltest/)輸入你的域名,可全面檢測SSL配置的安全性,包括:

  • 證書鏈是否完整(避免中間證書缺失);
  • 支持的TLS協議版本(禁用SSLv3、TLSv1.0等舊版協議);
  • 加密套件是否安全(避免使用RC4、DES等弱算法)。

常見問題排查

  • 證書錯誤:確保證書(.crt)與私鑰(.key)路徑正確且為配對文件,可使用openssl x509 -in cert.crt -text -nooutopenssl rsa -in key.key -check驗證文件完整性;
  • 端口未開放:確保防火墻允許443端口流量(UFW命令:sudo ufw allow 443/tcp);
  • 配置語法錯誤:若nginx -t報錯,根據提示定位配置文件中的錯誤行(如路徑拼寫錯誤、缺少分號等)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女