温馨提示×

centos nginx ssl配置文件详解

小樊
47
2026-01-07 23:45:38
栏目: 云计算

在CentOS系统中,Nginx是一个非常流行的Web服务器和反向代理服务器。为了启用HTTPS服务,你需要为Nginx配置SSL证书。以下是一个基本的Nginx SSL配置文件示例及其详解:

# 定义服务器名称和监听端口
server {
    listen 443 ssl;
    server_name example.com www.example.com;

    # SSL证书和密钥的路径
    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    # SSL协议和密码套件配置
    ssl_protocols TLSv1.2 TLSv1.3; # 只使用TLSv1.2和TLSv1.3协议
    ssl_ciphers HIGH:!aNULL:!MD5; # 使用高强度密码套件,排除不安全的密码套件

    # SSL会话缓存配置
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # Gzip压缩配置
    gzip on;
    gzip_disable "msie6";

    # 静态文件缓存配置
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }

    # 反向代理配置(如果有)
    location /api/ {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 默认首页配置
    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

# HTTP重定向到HTTPS
server {
    listen 80;
    server_name example.com www.example.com;

    location / {
        return 301 https://$host$request_uri;
    }
}

配置文件详解

  1. server块

    • listen 443 ssl;:监听443端口并启用SSL。
    • server_name example.com www.example.com;:定义服务器名称,可以是域名或IP地址。
  2. SSL证书和密钥

    • ssl_certificate /etc/nginx/ssl/example.com.crt;:指定SSL证书文件的路径。
    • ssl_certificate_key /etc/nginx/ssl/example.com.key;:指定SSL私钥文件的路径。
  3. SSL协议和密码套件

    • ssl_protocols TLSv1.2 TLSv1.3;:只启用TLSv1.2和TLSv1.3协议,禁用不安全的协议。
    • ssl_ciphers HIGH:!aNULL:!MD5;:使用高强度密码套件,排除不安全的密码套件。
  4. SSL会话缓存

    • ssl_session_cache shared:SSL:10m;:配置SSL会话缓存,提高SSL握手速度。
    • ssl_session_timeout 10m;:设置SSL会话超时时间。
  5. Gzip压缩

    • gzip on;:启用Gzip压缩。
    • gzip_disable "msie6";:禁用IE6的Gzip压缩。
  6. 静态文件缓存

    • location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:匹配静态文件请求。
    • expires 30d;:设置静态文件的缓存时间为30天。
    • add_header Cache-Control "public, no-transform";:添加缓存控制头。
  7. 反向代理配置(如果有):

    • location /api/:匹配API请求。
    • proxy_pass http://backend_server;:将请求转发到后端服务器。
    • proxy_set_header:设置转发请求的头信息。
  8. 默认首页配置

    • location /:匹配根路径请求。
    • root /var/www/html;:指定静态文件的根目录。
    • index index.html index.htm;:指定默认首页文件。
  9. HTTP重定向到HTTPS

    • listen 80;:监听80端口。
    • server_name example.com www.example.com;:定义服务器名称。
    • return 301 https://$host$request_uri;:将所有HTTP请求重定向到HTTPS。

注意事项

  • 确保SSL证书和密钥文件的路径正确,并且文件权限设置正确(通常为600)。
  • 定期更新Nginx和SSL证书,以确保安全性和兼容性。
  • 根据实际需求调整配置,例如添加更多的安全头信息、优化性能等。

通过以上配置,你可以在CentOS系统上成功配置Nginx以支持HTTPS服务。

0