环境准备

确保服务器运行在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部署 #赛符安全证书

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐