当前位置:

首页 > 系统应用 > Linux如何配置Nginx HTTPS证书_Linux Nginx HTTPS证书配置方案

Linux如何配置Nginx HTTPS证书_Linux Nginx HTTPS证书配置方案

给Nginx配上HTTPS,听起来像是件大事,但其实核心前提就那几个:确保Nginx编译时带上了--with-http_ssl_module模块,证书和私钥的路径写对、权限设严(私钥得是600)、并且使用绝对路径。真正起效的最小配置,不过就是listen 443 ssl、ssl_certificat

本文目录

    给Nginx配上HTTPS,听起来像是件大事,但其实核心前提就那几个:确保Nginx编译时带上了--with-http_ssl_module模块,证书和私钥的路径写对、权限设严(私钥得是600)、并且使用绝对路径。真正起效的最小配置,不过就是listen 443 ssl、ssl_certificate和ssl_certificate_key这三行。至于从HTTP跳转到HTTPS,记住要用一个独立的server块来监听80端口,然后直接return 301。

    Linux如何配置Nginx HTTPS证书_Linux Nginx HTTPS证书配置方案

    说白了,只要你的Nginx已经装好了SSL模块,证书文件也都各就各位,配置HTTPS其实就是改几行配置然后重启服务的事儿。真正会卡住人的,往往是那些没被提前检查的环节:比如压根没编译SSL模块、私钥文件还带着密码、配置文件里路径写错了、或者服务器防火墙压根没放行443端口。

    确认 Nginx 是否支持 SSL 模块

    第一步,先得确认你的Nginx“身体”里有没有这个功能。运行nginx -V(注意是大写的V),在输出的那一大串信息里找找有没有--with-http_ssl_module。如果找不到,那很遗憾,当前的Nginx不支持HTTPS,你硬配ssl_certificate只会导致服务启动失败。

    • 别想着先用nginx -t测试一下再重启——没有模块的话,连-t测试都会直接报错:unknown directive "ssl_certificate"。
    • 如果发现模块缺失,那就得重新编译了。进入你当初安装Nginx的源码目录,重新执行./configure,并在参数里加上--with-http_ssl_module,然后make && make install。
    • 这里有个隐蔽的坑:系统可能已经安装了OpenSSL运行时库,但没装对应的开发包(比如Ubuntu下的libssl-dev或CentOS下的openssl-devel)。这会导致configure阶段静默跳过SSL模块的编译,所以务必提前把这些开发包装好。

    证书文件路径与权限设置

    证书(通常是.crt或.pem文件)和私钥(.key文件)得放在一个既能让Nginx进程读到,又不会被其他普通用户随便访问的地方,比如/etc/nginx/ssl/目录下就很常见。

    • 私钥文件的权限必须是600。执行sudo chmod 600 /etc/nginx/ssl/example.com.key。如果权限不对,Nginx启动时会直接报错:SSL_CTX_use_PrivateKey_file("...") failed。
    • 证书文件的权限建议设为644,宽松一点读也没关系,不影响安全性。关键中的关键是私钥,绝不能设置组或其他用户可读。
    • 配置里写路径时,一定要用绝对路径。别用相对路径(比如../ssl/cert.crt)或者波浪号(~),Nginx可不会像Shell那样去解析这些符号。老老实实写成ssl_certificate /etc/nginx/ssl/example.com.crt;。

    server 块中启用 HTTPS 的最小必要配置

    要让一个HTTPS站点跑起来,在server块里最核心的配置就三行。其他的TLS协议版本、加密套件等参数都属于性能优化和安全加固,不是启动的必要条件。

    • listen 443 ssl http2; —— 这个ssl关键字必须带上,它告诉Nginx在这个端口上启用TLS握手。
    • ssl_certificate /etc/nginx/ssl/example.com.crt; —— 这里指向的是你的证书文件。注意,如果证书链不完整(比如缺少中间证书),浏览器可能会提示“证书不可信”。解决办法是把中间证书的内容,追加到这个.crt文件的末尾。
    • ssl_certificate_key /etc/nginx/ssl/example.com.key; —— 这里指向匹配的私钥文件。并且,这个私钥文件必须是“无密码”的。如果你当初生成时用了-des3这类加密参数,需要先用openssl rsa -in server.key.org -out server.key命令去除密码。
    • 记住,别在同一个server块里既写listen 80又配置ssl_certificate,Nginx的配置检查会拒绝这种混合加载。

    HTTP 自动跳转 HTTPS 的安全写法

    实现跳转,必须用一个独立的server块来专门监听80端口。而且,这个块里绝对不能出现任何ssl_*开头的指令,否则nginx -t测试会直接失败。

    • 正确写法:server { listen 80; server_name example.com; return 301 https://$host$request_uri; }
    • 错误写法:在上面这个80端口的server块里,还画蛇添足地加上ssl_certificate或者老的ssl on指令。这是新手复制粘贴配置时最容易栽跟头的地方。
    • 如果你的域名有多个(比如同时有example.com和www.example.com),记得在server_name后面都列上,或者使用泛域名*.example.com(但要注意,泛域名通常不匹配根域名本身)。
    • 配置好跳转后,如果首次访问HTTPS链接时浏览器提示“您的连接不是私密连接”,那大概率是证书本身的问题(比如链不完整或域名不匹配),而不是跳转配置写错了。

    说到证书,有两个细节特别容易在测试时被忽略,直到上线才暴露:一是证书链的完整性,比如使用Let’s Encrypt证书时,应该用fullchain.pem作为ssl_certificate,而不是只用cert.pem;二是域名匹配的粒度,通配符证书*.example.com对根域名example.com是无效的,这点在内部测试时经常因为访问方式而被绕过。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用 Linux
    相关文章 更多
    linux删除用户与用户组的方法及命令教程
    linux删除用户与用户组的方法及命令教程

    掌握Linux中删除用户和用户组的正确方法,避免残留文件和进程冲突。本文深入解析userdel和groupdel命令的参数用法,提供处理“用户仍在使用”等常见错误的实战方案。

    Linux如何开启端口号?开放端口命令详解
    Linux如何开启端口号?开放端口命令详解

    详细讲解Linux如何开启端口号以及常用的开放端口命令。

    crossover卸载软件下载及重新安装教程
    crossover卸载软件下载及重新安装教程

    遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。