服务器 > 网络 > SSL

在Nginx中配置SSL的详细指南

27人参与 2025-06-30 SSL

1. 引言

在当今的网络环境中,数据安全至关重要。ssl(安全套接字层)和 tls(传输层安全协议)为数据传输提供了加密保护。nginx 是一款高性能的 web 服务器,广泛应用于处理 https 请求。本文将详细介绍如何在 nginx 中配置 ssl。

2. 准备工作

2.1 安装 nginx

首先,确保 nginx 已安装在你的服务器上。可以通过以下命令进行安装:

在 ubuntu 上安装 nginx

sudo apt update
sudo apt install nginx

在 centos 上安装 nginx

sudo yum install epel-release
sudo yum install nginx

安装完成后,通过以下命令验证 nginx 是否正常运行:

sudo systemctl start nginx
sudo systemctl enable nginx

2.2 获取 ssl 证书

你可以选择购买商业 ssl 证书,或者使用 let’s encrypt 提供的免费 ssl 证书。

使用 let’s encrypt 获取证书

安装 certbot(用于自动化证书获取和续订):

sudo apt install certbot python3-certbot-nginx

获取证书

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

根据提示完成配置,certbot 会自动为你配置 nginx。

3. 配置 nginx 启用 ssl

3.1 编辑 nginx 配置文件

找到并打开你的 nginx 配置文件,通常位于 /etc/nginx/sites-available/default/etc/nginx/nginx.conf

3.2 添加 ssl 配置

在 server 块中添加以下内容:

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3000;  # 根据需要调整
        proxy_set_header host $host;
        proxy_set_header x-real-ip $remote_addr;
        proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
    }
}

4. 强化 ssl 配置

4.1 选择安全的加密套件

为了提高安全性,你可以选择推荐的加密套件:

ssl_protocols tlsv1.2 tlsv1.3;
ssl_ciphers 'ecdhe-rsa-aes128-gcm-sha256:ecdhe-rsa-aes256-gcm-sha384';
ssl_prefer_server_ciphers on;

4.2 启用 hsts

http strict transport security(hsts)可以防止中间人攻击:

add_header strict-transport-security "max-age=31536000; includesubdomains" always;

5. 测试 ssl 配置

在重启 nginx 之前,先测试配置是否有效:

sudo nginx -t

如果一切正常,重启 nginx 使更改生效:

sudo systemctl restart nginx

你可以使用 ssl labs 在线工具来检查 ssl 配置的安全性。

6. 续订和更新 ssl 证书

let’s encrypt 的证书有效期为 90 天,建议设置自动续订。certbot 默认会自动设置 cron 任务进行续订,但你可以手动测试续订:

sudo certbot renew --dry-run

结论

通过以上步骤,你可以在 nginx 中成功配置 ssl,提高网站的安全性。定期检查和更新你的 ssl 配置,以确保最佳的安全性。

到此这篇关于在nginx中配置ssl的详细指南的文章就介绍到这了,更多相关nginx配置ssl内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

feign调用跳过HTTPS的SSL证书校验配置过程

07-15

nginx配置域名(ssl和非ssl形式)的实现示例

07-23

CentOS7环境下安装JDK 1.8的详细教程

07-23

Nginx配置ssl证书方式(https证书)

07-25

如何使用vsftpd搭建FTP服务器(TLS/SSL显式加密)

06-11

Centos7如何升级openssl和openssh最新版

06-09

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论