2024 nginx已知 sztu.edu.cn.key和sztu.edu.cn.pem配置ssl

以下是针对 sztu.edu.cn 域名的 SSL 证书配置指南:


一、证书文件准备

假设你已有以下文件:

  • 私钥文件sztu.edu.cn.key
  • 证书文件sztu.edu.cn.pem(需确认是否包含完整证书链)
1. 验证证书完整性
# 查看证书内容
openssl x509 -in sztu.edu.cn.pem -text -noout

# 验证私钥与证书是否匹配
openssl rsa -noout -modulus -in sztu.edu.cn.key | openssl md5
openssl x509 -noout -modulus -in sztu.edu.cn.pem | openssl md5
  • 输出结果必须一致,否则证书和私钥不匹配

二、Nginx 配置模板

server {
    listen 443 ssl http2;
    server_name sztu.edu.cn www.sztu.edu.cn;

    # 证书路径配置(根据实际路径修改)
    ssl_certificate     /etc/ssl/certs/sztu.edu.cn.pem;      # 证书文件路径
    ssl_certificate_key /etc/ssl/private/sztu.edu.cn.key;    # 私钥文件路径

    # SSL 安全配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 网站根目录
    root /var/www/sztu.edu.cn;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

    # 强制HTTPS(可选,需配置80端口)
    error_page 497 https://$host$request_uri;
}

三、关键操作步骤

1. 创建证书存储目录
sudo mkdir -p /etc/ssl/{certs,private}
sudo chmod 700 /etc/ssl/private  # 保护私钥权限
2. 上传证书文件
# 上传证书文件
sudo cp sztu.edu.cn.pem /etc/ssl/certs/
sudo cp sztu.edu.cn.key /etc/ssl/private/

# 设置权限(关键!)
sudo chmod 644 /etc/ssl/certs/sztu.edu.cn.pem
sudo chmod 600 /etc/ssl/private/sztu.edu.cn.key
3. 配置 HTTP 强制跳转(80端口)
server {
    listen 80;
    server_name sztu.edu.cn www.sztu.edu.cn;
    return 301 https://$server_name$request_uri;
}

四、验证配置

1. 测试 Nginx 配置
sudo nginx -t  # 必须返回 "syntax is ok"
2. 重启 Nginx
sudo systemctl restart nginx
3. 在线检测工具
  • SSL Labs 测试:检查证书链和安全性评级
  • Why No Padlock?:检测混合内容问题

五、常见问题处理

1. 浏览器提示 “证书链不完整”
  • 原因.pem 文件未包含中间证书
  • 修复:将中间证书追加到 .pem 文件末尾:
    cat intermediate.crt >> sztu.edu.cn.pem
    
2. 私钥权限问题
# 检查日志
sudo tail -f /var/log/nginx/error.log

# 典型错误:
# SSL_CTX_use_PrivateKey_file("/etc/ssl/private/sztu.edu.cn.key") failed (SSL: error:0B080074...)
sudo chmod 600 /etc/ssl/private/sztu.edu.cn.key
3. 证书过期更新
  • 如果是自签名证书,需重新生成
  • 如果是 CA 签发证书,续期后替换文件并重启 Nginx

六、高级安全配置(可选)

# 在 http 块中添加
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";

通过以上配置,你的 sztu.edu.cn 域名将实现安全的 HTTPS 访问。如果证书由权威 CA 签发(如 Let’s Encrypt),用户浏览器将显示绿色锁标志。

你可能感兴趣的:(nginx,ssl,运维)