ertificate.txt certificate_chain.txt private_key.txt
txt
# 创建证书存储目录(Linux通用) sudo mkdir -p /etc/nginx/ssl # 专门存放Nginx证书,也可用/etc/ssl/certs
# 登录服务器,进入证书目录 cd /etc/nginx/ssl/ # 重命名为Nginx易识别的格式(可选但推荐) sudo mv certificate.txt domain.crt # 主证书 sudo mv certificate_chain.txt chain.crt # 证书链 sudo mv private_key.txt domain.key # 私钥 # 检查私钥是否加密(如果执行后提示输入口令,说明私钥加密,需先解密) openssl rsa -in domain.key -check # 【若私钥加密】解密(输入AWS导出时设置的口令) openssl rsa -in domain.key -out domain-decrypted.key sudo rm -f domain.key && sudo mv domain-decrypted.key domain.key # 替换为解密后的私钥 # 设置严格权限(必须!否则Nginx启动失败) sudo chmod 600 /etc/nginx/ssl/* # 所有证书文件仅root可读 sudo chown root:root /etc/nginx/ssl/* # 归属root用户
/etc/nginx/sites-available/你的域名.conf
# 新建/编辑配置文件(替换为你的域名) sudo vim /etc/nginx/conf.d/your-domain.conf
your-domain.com
# 1. HTTP自动重定向到HTTPS(可选但推荐) server { listen 80; server_name your-domain.com www.your-domain.com; # 替换为你的域名 return 301 https://$host$request_uri; # 强制跳转到HTTPS } # 2. HTTPS核心配置 server { listen 443 ssl http2; # 启用SSL+HTTP2(http2可选,提升性能) server_name your-domain.com www.your-domain.com; # 替换为你的域名 # 证书文件路径(对应第一步的文件位置) ssl_certificate /etc/nginx/ssl/domain.crt; # 主证书 ssl_certificate_key /etc/nginx/ssl/domain.key; # 解密后的私钥 ssl_trusted_certificate /etc/nginx/ssl/chain.crt; # 证书链(增强信任) # 【安全配置】禁用弱协议/加密套件(必配,避免浏览器提示不安全) ssl_protocols TLSv1.2 TLSv1.3; # 仅启用TLS1.2/1.3,禁用老旧SSL/TLS ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers on; # 优先使用服务器加密套件 ssl_session_timeout 10m; # 会话超时时间 # 【可选】HSTS配置(强制浏览器长期使用HTTPS,增强安全) add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; # 网站根目录(替换为你的实际网站文件路径,比如/var/www/html) root /var/www/your-domain; index index.html index.php; # 按需调整 # 常规location配置(保持原有即可) location / { try_files $uri $uri/ =404; } }
# 1. 检查Nginx配置语法(关键!避免配置错误导致服务启动失败) sudo nginx -t # 若提示:nginx: configuration file /etc/nginx/nginx.conf test is successful → 配置无误 # 若报错:检查证书路径、私钥权限、配置语法(比如分号缺失) # 2. 重启Nginx生效配置 sudo systemctl restart nginx # 3. 确认Nginx运行状态 sudo systemctl status nginx