当前位置: 代码网 > 服务器>网络>SSL > Nginx配置为HTTPS的完整步骤(支持 SSL/TLS 加密)

Nginx配置为HTTPS的完整步骤(支持 SSL/TLS 加密)

2025年11月02日 SSL 我要评论
nginx配置为https(支持 ssl/tls 加密)步骤 1:获取 ssl证书你可以选择使用 let's encrypt 提供的免费 ssl 证书,或者购买其他 ca(证书颁发机构)提供的

nginx配置为https(支持 ssl/tls 加密)

步骤 1:获取 ssl证书

你可以选择使用 let's encrypt 提供的免费 ssl 证书,或者购买其他 ca(证书颁发机构)提供的证书。以 let's encrypt 为例:

使用 let's encrypt 获取免费证书

  1. 安装 certbot(let's encrypt 官方工具):
  2. sudo yum install epel-release -y
  3. sudo yum install certbot python3-certbot-nginx -y
  4. 获取 ssl 证书
    假设你有一个域名(例如 your_domain.com)并且已经配置了该域名指向你的服务器 ip。

运行以下命令来请求证书:

sudo certbot --nginx -d your_domain.com

certbot 会自动生成证书并配置 nginx,使其支持 https。如果配置成功,certbot 会自动更新你的 nginx 配置文件,将 http 重定向到 https。

手动获取 ssl 证书

如果你购买了 ssl 证书,通常证书提供商会提供 .crt 和 .key 文件。你需要将这些文件上传到服务器。

  • 证书文件(例如 your_domain.crt)
  • 私钥文件(例如 your_domain.key)

步骤 2:配置 nginx使用 ssl证书

如果你使用 certbot,nginx 配置会自动更新,但如果你手动配置 ssl,请按照以下步骤进行:

备份原始的 nginx 配置文件

在进行修改之前,备份你的 nginx 配置文件以防万一:sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

编辑 nginx 配置文件

打开你的站点配置文件,通常位于 /etc/nginx/conf.d/ 或 /etc/nginx/sites-available/。

sudo vi /etc/nginx/nginx.conf

如果你使用了 certbot,nginx 的 ssl 配置可能已经完成。如果是手动配置,添加以下 ssl 配置:

server {

    listen 80;

    server_name your_domain.com www.your_domain.com;

    # 301 重定向 http 到 https

    return 301 https://$host$request_uri;
}

server {

    listen 443 ssl;

    server_name your_domain.com www.your_domain.com;


    # ssl 配置

    ssl_certificate /etc/nginx/ssl/your_domain.crt;

    ssl_certificate_key /etc/nginx/ssl/your_domain.key;

    ssl_session_cache shared:ssl:1m;

    ssl_session_timeout 5m;


    # 强制使用最新的 ssl 协议

    ssl_protocols tlsv1.2 tlsv1.3;

    ssl_ciphers 'ecdhe-ecdsa-aes128-gcm-sha256:ecdhe-rsa-aes128-gcm-sha256:...';

    ssl_prefer_server_ciphers on;


    # 其他配置

    location / {

        root /usr/share/nginx/html;
        index index.html index.htm;
    }
}
  • ssl_certificate:你的 ssl 证书 文件路径。
  • ssl_certificate_key:你的 ssl 私钥 文件路径。
  • ssl_protocols:配置支持的 ssl/tls 协议。
  • ssl_ciphers:设置强加密的密码套件。

测试 nginx 配置

在重新加载 nginx 之前,先测试配置文件是否正确:

sudo nginx -t

如果显示 syntax is ok,表示配置没有问题。

重新加载 nginx

重新加载 nginx 配置以应用更改:

sudo systemctl reload nginx

步骤 3:自动更新 ssl证书(如果使用 let's encrypt)

如果你使用的是 let's encrypt,你可以通过 certbot 自动更新证书。certbot 默认会设置自动续期,证书将在到期前自动更新。

可以通过以下命令手动测试自动续期:

sudo certbot renew --dry-run

步骤 4:确保防火墙允许 https流量

确保 443 端口(https)已经打开,并且防火墙允许该端口的流量。你可以使用以下命令查看防火墙规则,并允许 443 端口:

sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

步骤 5:访问 https

现在,你可以通过 https://your_domain.com 来访问你的网站。如果一切配置正确,访问时会看到一个安全的 https 连接。

总结

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

(0)

相关文章:

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

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com