LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

Nginx 配置新 SSL 证书并启用 HTTPS 的详细步骤,适用于手动安装证书或结合 Let's Encrypt 自动管理的情况

admin
2025年8月11日 9:2 本文热度 71

​ 

以下是 在 Nginx 配置新 SSL 证书并启用 HTTPS 的详细步骤,适用于手动安装证书或结合 Let's Encrypt 自动管理的情况:

 

1. 准备工作

1.1 获取 SSL 证书

证书来源

从证书颁发机构(CA)购买证书(如阿里云、腾讯云、DigiCert 等)。

使用 Let's Encrypt 免费证书(推荐)。

生成自签名证书(仅用于测试环境)。

证书文件要求

服务器证书文件(如 example.com.crt 或 fullchain.pem)。

私钥文件(如 example.com.key 或 privkey.pem)。

(可选)中间证书文件(如 intermediate.crt,需与主证书合并为完整证书链)。

1.2 上传证书到服务器

将证书和私钥上传到服务器的安全目录(如 /etc/nginx/ssl/):

Bash                  
sudo mkdir -p /etc/nginx/ssl/                  
sudo cp example.com.crt /etc/nginx/ssl/                  
sudo cp example.com.key /etc/nginx/ssl/

 

2. 配置 Nginx

2.1 编辑 Nginx 配置文件

打开站点配置文件(通常位于 /etc/nginx/sites-available/your_domain.conf 或 /etc/nginx/conf.d/your_domain.conf):

Bash                  
sudo nano /etc/nginx/sites-available/example.com.conf

添加 SSL 配置(示例):

Nginx                  
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;                  
    ssl_ciphers HIGH:!aNULL:!MD5;                  
    ssl_prefer_server_ciphers on;                  

    # 其他配置(如网站根目录、代理等)                  
    location / {                  
        root /var/www/html;                  
        index index.html;                  
    }                  
}

强制 HTTP 跳转 HTTPS(可选)

Nginx                  
server {                  
    listen 80;                  
    server_name example.com www.example.com;                  
    return 301 https://$host$request_uri;                  
}

 

2.2 检查配置文件语法

测试 Nginx 配置是否正确:

Bash                  
sudo nginx -t

如果提示 syntax is ok 且 test is successful,则配置无误。

 

3. 重启 Nginx 服务

平滑重启 Nginx(避免服务中断):

Bash                  
sudo systemctl reload nginx

如果失败,尝试完全重启:

Bash                  
sudo systemctl restart nginx

 

4. 验证 SSL 配置

4.1 浏览器访问测试

访问 https://example.com,检查浏览器地址栏是否显示安全锁标志,且无证书错误。

4.2 命令行验证

使用 openssl 检查证书信息:

Bash                  
openssl x509 -in /etc/nginx/ssl/example.com.crt -text -noout

使用在线工具(如 SSL Labs)测试证书配置。

 

5. 自动续签证书(推荐,适用于 Let's Encrypt)

如果使用 Certbot(Let's Encrypt)管理证书:

5.1 安装 Certbot

Bash                  
sudo apt install certbot python3-certbot-nginx  # Debian/Ubuntu                  
sudo yum install certbot python3-certbot-nginx  # CentOS/RHEL

5.2 获取并配置证书

Bash                  
sudo certbot --nginx -d example.com -d www.example.com

按提示选择域名并启用自动重定向(HTTP 到 HTTPS)。

5.3 设置自动续签

编辑定时任务:

Bash                  
sudo crontab -e

添加以下任务(每天凌晨 2 点检查续签):

Bash                  
0 2 * * * certbot renew --quiet

 

6. 注意事项

(1)权限设置:

确保证书和私钥文件权限正确:

Bash                  
sudo chmod 600 /etc/nginx/ssl/*.key                  
sudo chmod 644 /etc/nginx/ssl/*.crt                  
sudo chown root:root /etc/nginx/ssl/*.key

(2)证书链完整性:

如果证书文件缺少中间证书,需将 CA 提供的中间证书合并到主证书文件中:

Bash                  
cat example.com.crt intermediate.crt > fullchain.crt

(3)防火墙配置:

确保服务器防火墙或安全组允许 443 端口入站流量。

(4)日志监控:

检查 Nginx 错误日志(/var/log/nginx/error.log)排查配置问题。

 

7. 常见问题排查

证书未生效:检查 Nginx 配置中证书路径是否正确,或尝试强制刷新浏览器缓存。

权限错误:确保私钥文件权限为 600,且 Nginx 进程有权限读取证书文件。

配置冲突:运行 nginx -t 检查语法,或查看日志文件 /var/log/nginx/error.log 

通过以上步骤,可以完成 Nginx 的 SSL 证书配置。


该文章在 2025/8/11 10:57:45 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved