• Linux下配置Nginx并使用https协议


    环境

    Centos7.6
    nginx-1.17.0

    下载

    官网:http://nginx.org/download/nginx-1.17.0.tar.gz

    环境确认

    在安装nginx前首先要确认系统中是否安装gccpcre-develzlib-developenssl-devel

    • 检查是否安装过软件包
    yum list installed | grep xxx
    

    在这里插入图片描述

    • 安装软件包
    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
    

    在这里插入图片描述
    上图为已安装


    安装

    • nginx-1.17.0.tar.gz上传至服务器并解压
    tar -xzvf nginx-1.17.0.tar.gz
    

    解压后如下所示:
    在这里插入图片描述

    • nginx目录下编译安装nginx
    ./configure --prefix=/usr/local/nginx1.17.0 --conf-path=/usr/local/nginx1.17.0/nginx.conf --with-http_stub_status_module --with-http_ssl_module
    

    --with-http_ssl_module配置nginx支持https协议访问,不使用https可以不用添加该命令
    在这里插入图片描述
    该命令编译nginx时将配置文件nginx.conf生成在nginx目录下,因编译后出现错误,采用这种方式,详见后面错误记录,因此,nginx的配置文件不再是conf中的nginx.conf
    在这里插入图片描述

    • 顺序执行makemake install编译
    make
    

    在这里插入图片描述
    make install
    在这里插入图片描述

    • 测试是否安装成功
    ./sbin/nginx -t
    

    在这里插入图片描述

    • 启动nginx
    ./sbin/nginx
    

    在这里插入图片描述

    • 停止nginx
    ./sbin/nginx -s stop
    
    • 重启nginx
    ./sbin/nginx -s reload
    
    • 查看nginx进程
    ps -ef | grep nginx
    

    在这里插入图片描述

    • 访问:浏览器访问服务器IP(nginx默认端口为80),出现如下界面则证明成功
      在这里插入图片描述

    配置HTTPS

    • 服务器上安装opensslopenssl-devel
    yum install openssl  openssl-devel
    
    • 创建证书存放目录
    mkdir   /usr/local/nginx/conf/ssl
    
    • 创建服务器私钥
    openssl genrsa -des3 -out server.key 2048 #根据提示输入证书口令
    

    在这里插入图片描述

    • 创建签名请求的证书(CSR
    openssl req -new -key server.key -out server.csr  #输入上面设置的口令,根据提示输入相应的信息
    

    在这里插入图片描述

    • key进行解密
    openssl rsa -in server.key -out server_nopasswd.key
    

    在这里插入图片描述

    • 标记证书使用上述私钥和CSR
    openssl x509 -req -days 365 -in server.csr -signkey server_nopasswd.key -out server.crt
    

    在这里插入图片描述

    • vim修改nginx配置文件,加载ssl证书
    server {
            listen       443 ssl;
            server_name  localhost;
    
            ssl_certificate      /usr/local/nginx-1.17.0/conf/ssl/server.crt;
            ssl_certificate_key  /usr/local/nginx-1.17.0/conf/ssl/server.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_protocols TLSv1.2;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
        }
    
    • 输入证书密码启动nginx
      在这里插入图片描述

    • 浏览器访问测试:https://服务器IP + 端口443,出现如下界面则成功
      在这里插入图片描述

    错误记录

    • nginx报错:cp: `conf/koi-win' and `/usr/local/nginx/conf/koi-win' are the same file
      在这里插入图片描述

    该错误为编译安装nginx时没有指定conf-path出现的,出现问题的命令:

    ./configure --prefix=/usr/local/nginx1.17.0 --with-http_stub_status_module --with-http_ssl_module
    

    将命令改为如下指定conf-path后正常:

    ./configure --prefix=/usr/local/nginx1.17.0 --conf-path=/usr/local/nginx1.17.0/nginx.conf --with-http_stub_status_module --with-http_ssl_module
    

    暂不知具体原因,感谢大佬
    centos安装nginx 报错:cp: 'conf/koi-win' and '/usr/local/nginx/conf/koi-win' are the same file

    .end

  • 相关阅读:
    LeetCode算法第一题
    基础题整理
    MongoDB 之 Limit 选取 Skip 跳过 Sort 排序 MongoDB
    MongoDB 之 $关键字 及 $修改器 $set $inc $push $pull $pop MongoDB
    mongodb的数据类型
    mongodb的增删改查
    session与cookie之间的关系
    Python 格式化输出的3种方式
    判断python字典中key是否存在的两种方法
    python实现忽略大小写对字符串列表排序的方法
  • 原文地址:https://www.cnblogs.com/maggieq8324/p/13817399.html
Copyright © 2020-2023  润新知