Nginx配置SSL证书的全流程

 更新时间:2025年02月22日 10:23:49   作者:Cynicism_Smile  
文章详细介绍了如何通过阿里云或腾讯云申请免费SSL证书,并在Nginx中配置SSL以启用HTTPS,配置包括设置SSL会话缓存、超时、加密套件、优先级以及指定证书和密钥的位置,配置完成后,通过验证语法并重启Nginx,网站将启用HTTPS,用户访问时会看到浏览器地址栏的锁图标

一、ssl证书下载

ssl证书下载,可通过阿里云或者腾讯云申请免费ssl证书(证书域名需要购买)

以上为腾讯云,申请成功后可在页面下载ssl证书,类型选择nginx的那种就行,适用大部分场景;

二、nginx配置

下载ssl证书后会得到四个文件

将文件上传到和nginx同目录下,或者自己指定位置即可

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_certificate path/to/you/youyuming.cn_bundle.pem;
ssl_certificate_key path/to/you/youyuming.cn.key;

另外 需要在监听的端口后加上ssl;

配置说明:

1. ssl_session_cache shared:SSL:1m;

作用:设置SSL会话缓存。这有助于加速重复连接,因为客户端和服务器不需要为每个新连接重新协商整个SSL/TLS握手。

参数解释

  • shared:SSL::创建一个名为SSL的共享内存区域,用于存储会话信息。共享内存区可以在多个worker进程之间共享,从而提高效率。
  • 1m:分配给这个共享缓存的内存量(1兆字节)。根据您的服务器流量和需要支持的同时连接数,可以调整这个值。

2. ssl_session_timeout 5m;

作用:定义SSL会话缓存的有效期。一旦超过了这个时间,如果客户端再次尝试建立连接,则需要重新进行完整的SSL/TLS握手。

参数解释

  • 5m:表示5分钟。可以根据需求调整此超时值以平衡性能与资源使用。

3. ssl_ciphers HIGH:!aNULL:!MD5;

作用:指定允许使用的加密套件(cipher suites),即决定客户端和服务器之间的通信应该使用哪些加密算法。

参数解释

  • HIGH:选择高强度的加密算法。
  • !aNULL:禁止无身份验证的加密套件,这意味着所有加密套件都必须包含某种形式的身份验证。
  • !MD5:排除使用MD5哈希算法的加密套件,因为MD5被认为不再安全。

4. ssl_prefer_server_ciphers on;

作用:启用服务器端优先级。当这个选项被激活时,Nginx将使用其配置文件中定义的加密套件顺序,而不是依赖于客户端提供的顺序。

参数解释

  • on:开启服务器端优先级。推荐启用此选项以确保使用更安全的加密套件。

5. ssl_certificate /path/to/your/youyuming.cn_bundle.pem;

作用:指定服务器证书的位置。这是用来证明服务器身份的数字证书。

参数解释

  • /path/to/your/youyuming.cn_bundle.pem:证书文件的路径。应替换为实际的证书文件路径。

6. ssl_certificate_key /path/to/your/youyuming.cn.key;

作用:指定私钥文件的位置。私钥是与证书配对的,用于解密通过SSL/TLS加密的通信。

参数解释

  • /path/to/your/youyuming.cn.key:私钥文件的路径。同样地,应替换为实际的私钥文件路径。

nginx配置完后可验证下配置语法是否正确 nginx -t, 没啥问题的话再次访问网站就可看到一把小锁.

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx配置统计流量带宽请求及记录实时请求状态的方法

    Nginx配置统计流量带宽请求及记录实时请求状态的方法

    这篇文章主要介绍了Nginx中配置统计流量带宽请求及记录实时请求状态的方法,分别用到了ngx_req_status和ngx_realtime_request模块,需要的朋友可以参考下
    2016-01-01
  • 一文带你搞懂Nginx如何处理请求

    一文带你搞懂Nginx如何处理请求

    Nginx(Engine X)是一个高性能的HTTP和反向代理服务器,本文将从原理、代码以及示例来深入分析 Nginx如何处理请求,希望对大家有所帮助
    2024-11-11
  • django8.5 项目部署Nginx的操作步骤

    django8.5 项目部署Nginx的操作步骤

    nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。它是一个俄罗斯人lgor sysoev开发的,作者将源代码开源出来供全球使用,下面小编给大家带来了django8.5 项目部署Nginx的操作步骤,感兴趣的朋友一起看看吧
    2022-01-01
  • Nginx实现高并发的项目实践

    Nginx实现高并发的项目实践

    本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • nginx出现权限问题解决(13: Permission denied)

    nginx出现权限问题解决(13: Permission denied)

    本文主要介绍了nginx出现权限问题解决(13: Permission denied),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 详解Nginx与Apache共用80端口的配置方法

    详解Nginx与Apache共用80端口的配置方法

    这篇文章主要介绍了Nginx与Apache共用80端口的配置方法,当然如果想Nginx不与Apache抢80端口的话,本文后面也附带了Nginx的端口修改方法,需要的朋友可以参考下
    2016-01-01
  • nginx 平滑重启与升级的实现方法

    nginx 平滑重启与升级的实现方法

    有时候我们需要平滑重启nginx服务,防止出现问题,这里简单的总结,方便需要的朋友
    2013-02-02
  • nginx 如何配置文件上传大小

    nginx 如何配置文件上传大小

    这篇文章主要介绍了nginx 如何配置文件上传大小,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • 详解nginx location指令

    详解nginx location指令

    location指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应,这其中较难理解的是多个location的匹配顺序,本文会作为重点来解释和说明,这篇文章主要介绍了nginx location指令详解,需要的朋友可以参考下
    2022-01-01
  • Nginx实现动静分离的示例代码

    Nginx实现动静分离的示例代码

    Nginx动静分离是旨在将静态页面与动态页面或静态内容接口与动态内容接口分开,本文主要介绍了Nginx实现动静分离的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03

最新评论