Nginx服务器上安装SSL证书方式

 更新时间:2026年04月13日 09:22:15   作者:别团等shy哥发育  
该文详细介绍了在Nginx服务器上搭建HTTPS的过程,包括检查和安装http_ssl_module模块、下载并配置SSL证书、修改nginx.conf文件及设置自动跳转HTTPS等步骤

1、前提条件

  • 服务器已经开启了443端口(HTTPS服务的默认端口)
  • 服务器上已安装了http_ssl_module模块

2、nginx安装http_ssl_module模块

2.1 查看是否安装过http_ssl_module

进入nginx安装目录执行如下命令

./nginx -V

若出现“–with-http_ssl_module”说明已经安装过,否则继续执行下列步骤

2.2 进入nginx源文件目录

cd /usr/local/nginx/nginx-1.18.0/

2.3 重新编译nginx

./configure --with-http_ssl_module

再执行如下命令:

make

这里一定不要执行make install,否则会覆盖掉原来的nginx

2.4 用新的nginx覆盖旧的

会多一个objs文件夹

执行覆盖命令(先停止nginx,./nginx -s stop)

 cp ./objs/nginx /usr/local/nginx/sbin/

3、https配置(SSL证书安装)

3.1 下载证书文件和密钥文件

我自己用的百度云的免费SSL证书,下载证书,这里格式选择PEM_Nginx

解压完之后有两个文件,如下所示。

  • 证书文件(以.cer或crt为后缀或文件类型)
  • 密钥文件(以.key为后缀或文件类型)

3.2 服务器上创建cert文件夹

在nginx的安装目录创建cert文件夹,并将下载的证书文件,和密钥文件拷贝到cert目录中。

这里我创建到了nginx/conf下面了,这是试了好几次报错后的结果。

3.3 配置nginx.conf

打开Nginx安装目录 > conf文件夹 > nginx.conf文件,在nginx.conf文件中找到以下属性

将注释放开,并修改内容如下:

 # 以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
    server {
        listen 443 ssl;
        server_name codeleader.top;  # localhost修改为您证书绑定的域名。
        # ssl on;   #设置为on启用SSL功能。
        root html;
        index index.html index.htm;
        ssl_certificate cert/codeleader.top.crt;   #将domain.pem替换成您证书的文件名。
        ssl_certificate_key cert/codeleader.top.key;   #将domain.key替换成您证书的密钥文件名。
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
        ssl_prefer_server_ciphers on;
        location / {
            proxy_pass http://halo;
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

这里我并没有隐藏我的域名,希望懂行的大佬不要恶意攻击,我也只是用服务器部署小项目测试,并不是生产服务器,攻击对您也没啥收益。

3.4 设置http请求自动跳转https

在需要跳转的http站点下添加以下rewrite语句,实现http访问自动跳转到https页面

#设置http请求自动跳转https
rewrite ^(.*)$ https://$host$1 permanent;

3.5 重启测试

./nginx -s reload

证书安装完成后,可通过登录证书绑定域名的方式验证证书是否安装成功。

https://domain:port   #domain替换成证书绑定的域名,默认443端口可以忽略不输入

如果网页地址栏出现绿色小锁标志,表示证书安装成功。

总结

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

相关文章

  • Kubernetes之安装nginx-controller作为统一网关方式

    Kubernetes之安装nginx-controller作为统一网关方式

    这篇文章主要介绍了Kubernetes之安装nginx-controller作为统一网关方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • nginx里集成php模块安装配置步骤详解

    nginx里集成php模块安装配置步骤详解

    这篇文章主要为大家介绍了nginx里集成php模块安装配置步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Nginx配置方向代理及目录白名单配置教程

    Nginx配置方向代理及目录白名单配置教程

    文章介绍了Nginx反向代理的配置方法,包括基本配置、events配置、http配置、server配置和location配置,通过配置location块,可以实现不同的请求路径转发到不同的后端服务器,此外,还介绍了目录白名单的配置方法,可以根据请求的目录路径来决定是否转发
    2026-02-02
  • Nginx反向代理入门实战指南

    Nginx反向代理入门实战指南

    反向代理:反向代理也叫reverse proxy,指的是代理外网用户的请求到内部的指定web服务器,并将数据返回给用户的一种方式,这是用的比较多的一种方式,下面这篇文章主要给大家介绍了关于Nginx反向代理的相关资料,需要的朋友可以参考下
    2021-08-08
  • nginx 代理后出现503的解决方法

    nginx 代理后出现503的解决方法

    本文主要介绍了nginx 代理后出现503的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Nginx禁止访问php文件的方法总结

    Nginx禁止访问php文件的方法总结

    当涉及到禁止访问 PHP 文件时,有多种方法可以考虑,以下是十多种方法的详细说明,以及如何在 Nginx 中应用它们,需要的朋友可以参考下
    2023-09-09
  • Nginx服务器https配置的方法示例

    Nginx服务器https配置的方法示例

    这篇文章主要介绍了Nginx服务器https配置的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • nginx+lua+redis实现限流的示例代码

    nginx+lua+redis实现限流的示例代码

    本文主要介绍了nginx+lua+redis实现限流的示例代码,包括HttpRedis模块、HttpRedis2Module模块和lua-resty-redis库,具有一定的参考价值,感兴趣的可以了解一下
    2025-12-12
  • Nginx Rewrit实现网页跳转功能详细步骤

    Nginx Rewrit实现网页跳转功能详细步骤

    Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程,这篇文章主要介绍了Nginx Rewrit实现网页跳转功能详细步骤,需要的朋友可以参考下
    2024-02-02
  • Logrotate如何实现每小时切割日志文件

    Logrotate如何实现每小时切割日志文件

    这篇文章主要介绍了Logrotate如何实现每小时切割日志文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论