实战|Nginx服务器安装SSL证书,照着这篇配置不出错
·
环境准备
确保服务器运行在Ubuntu 22.04或CentOS 8系统上,Nginx版本为1.20或更高。确认域名yourdomain.com已解析到服务器IP地址。
获取证书文件
从证书颁发机构(如赛符安全证书)下载适用于Nginx的证书包,通常包含以下文件:
yourdomain.com.crt(服务器证书)yourdomain.com.key(私钥文件)- 部分CA可能提供
ca_bundle.crt(中间证书)
合并证书链
若存在中间证书,需将服务器证书与中间证书合并:
cat yourdomain.com.crt ca_bundle.crt > fullchain.crt
注意合并顺序:服务器证书在前,中间证书在后。
上传证书至服务器
创建专用目录存放证书文件,并设置严格的私钥权限:
sudo mkdir -p /etc/nginx/ssl
sudo cp fullchain.crt /etc/nginx/ssl/
sudo cp yourdomain.com.key /etc/nginx/ssl/
sudo chmod 600 /etc/nginx/ssl/yourdomain.com.key
配置Nginx站点
编辑站点配置文件(如/etc/nginx/sites-available/yourdomain.com),配置HTTP到HTTPS的重定向和SSL参数:
server {
listen 80;
server_name yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/fullchain.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers off;
add_header Strict-Transport-Security "max-age=63072000" always;
root /var/www/html;
index index.html;
}
验证与重载配置
执行配置语法检查并平滑重载Nginx:
sudo nginx -t
sudo systemctl reload nginx
防火墙与端口放行
确保防火墙允许443端口流量:
sudo ufw allow 443/tcp
# 或针对iptables
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
自动化续期配置
为应对证书有效期缩短至200天的规定,可设置自动化续期任务。例如使用赛符的ACME工具:
0 2 * * * /usr/local/bin/safecert-renew --domain yourdomain.com --nginx
测试与验证
使用OpenSSL验证证书链完整性:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
浏览器访问https://yourdomain.com,确认地址栏显示安全锁标志。
常见问题排查
- 私钥不匹配:检查
yourdomain.com.key是否与证书匹配。 - 证书链不完整:重新合并证书并确保顺序正确。
- 重定向循环:检查配置中是否存在重复的重定向逻辑。
- 端口未开放:确认防火墙或安全组规则已放行443端口。
#Nginx配置 #SSL证书 #HTTPS部署 #赛符安全证书
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)