• 手把手教你Nginx 配置 HTTPS 完整过程


    相信大家在现有项目里都会通过https访问,我们今天得教程就是通过配置nginx实现https访问。

    nginx配置HTTPS前置条件

    服务器上已经安装nginx服务,已经具备http访问;
    nginx服务器是否已经安装ssl模块得支持;
    是否已经拥有ssl证书,如果没有可以去阿里云或者腾讯云免费申请;
    
    • 1
    • 2
    • 3

    1,证书申请

    证书申请前往阿里云SSL证书申请,选择免费证书申请即可

    在这里插入图片描述

    2 nginx SSL模块是否支持

    查看nginx是否安装http_ssl_module模块
    ./nginx -V
    
    • 1

    在这里插入图片描述
    如果看到我上图标记得 configure arguments: --with-http_ssl_module, 则已安装(可以直接跳过nginx安装ssl支持步骤,进入 nginx.conf 配置)。

    3,nginx安装

    3.1 nginx官网地址

    下载地址:http://nginx.org/en/download.html
    这里下载nginx-1.18.0稳定版tar.gz

    3.2 下载tar包到服务器目录

    cd /home/somnus
    wget http://nginx.org/download/nginx-1.18.0.tar.gz
    
    • 1
    • 2

    3.3 解压安装包

    tar -zxvf nginx-1.18.0.tar.gz
    
    • 1

    3.4 配置ssl模块

    cd nginx-1.18.0
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module
    
    • 1
    • 2

    我们只需要执行以上命令即可,由于我服务器上还有其他模块依赖

    3.5 接下来执行命令编译

    使用 make 命令编译(使用make install会重新安装nginx),此时当前目录会出现 objs 文件夹。用新的 nginx 文件覆盖当前的 nginx 文件。
    在这里插入图片描述

    3.6 命令拷贝复制

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

    3.7 再次查看安装的模块(configure arguments: --with-http_ssl_module说明ssl模块已安装)。

    ./nginx -V
    nginx version: nginx/1.18.0
    …
    configure arguments: –with-http_ssl_module
    
    • 1
    • 2
    • 3
    • 4

    4. ssl 证书部署

    下载申请好的 ssl 证书文件压缩包到本地并解压(这里是用的 pem 与 key 文件,文件名可以更改)。
    在 nginx 目录新建 cert 文件夹存放证书文件。

     cd /usr/local/nginx
     mkdir cert
    
    • 1
    • 2

    将我们申请得这两个文件上传至服务器的 cert 目录里。
    在这里插入图片描述

    4.1. nginx.conf 配置

    编辑 /usr/local/nginx/conf/nginx.conf 配置文件:

    配置 https server。
    注释掉之前的 http server 配置,新增 https server:

     server {
            listen       443 ssl;
            server_name somnus.test.com;
    
            ssl_certificate      ../cert/somnus.test.com.pem;
            ssl_certificate_key  ../cert/somnus.test.com.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    	ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ......
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4.2 将 http 重定向 https

    server {
        listen 80;
        server_name somnus.test.com;
        #将请求转成https
        rewrite ^(.*)$ https://$host$1 permanent;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.5 重启 nginx

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    
    • 1

    如果 80 端口被占用,可以通过kill命令来进行结束进程:

    5 查看端口使用

     netstat -lntp
    
    • 1

    执行看到以下结果就说明我们成功了

    [root@iZi5u1azluu464tfbesf3aZ conf]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3322/nginx: master  
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2310/sshd                  
    tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      3322/nginx: master  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5.1 结束nginx端口进程

    5.1 查看nginx 进程命令

    ps aux | grep nginx
    
    • 1

    在这里插入图片描述

    5.2 执行结束命令

    kill -9 3322
    
    • 1

    5.1 重启 nginx :

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    
    • 1

    以上就是我们今天的教程,如果本文对你有所帮助,欢迎关注点赞,分享给您身边的朋友。您的鼓励就是对我的最大动力。

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    使用CMake创建CUDA工程
    easyexcel行数超过500行,randomAccessWindowSize滑动窗口优化带来的”问题“
    径向基函数拟合
    2023 Google 开发者大会学习心得总结
    电力电子转战数字IC20220824day68——uvm实战3
    [设计模式] 建造者模式
    python的基础知识
    基于STM32单片机的PT100测温(AD转换)(Proteus仿真+程序)
    SpringMVC修炼之旅(1)什么是SpringMVC
    allatori8.0文档翻译-第十步:增加过期日期
  • 原文地址:https://blog.csdn.net/m0_67401153/article/details/126081268