美文网首页
Nginx配置https请求

Nginx配置https请求

作者: 小波同学 | 来源:发表于2019-01-20 02:48 被阅读125次

    因为https协议是以后必须用到的,所以先提前学习一下,因为是测试,所以用的自签名证书,

    首先我们先下载OpenSSL ,下载地址

    下载后我们得到了安装程序,安装在同路径后,就是这样子的

    image
    • 注Windows10系统需要配置openssl环境变量,配置到bin目录:D:\OpenSSL-Win64\bin

    • 然后我们进去OpenSSL-Win64\bin,就是进入bin里利用Dos窗口来运行我们后面要执行的命令

    • 首先我们输入一行 openssl genrsa -des3 -out server.key 1024 这个是产生一个des3算法,1024 | 2048位强度的rsa私钥,bin文件夹里会产生一个名为server.key的秘钥文件。

    • 然后它会要你为这个私钥提供一个最少4位数的密码,如下图:


      image.png
    • 然后它要你再输入一次


      image.png
    • 然后我们就可以开始生成csr文件,这个文件是生成证书的

    • 先根据server.key生成csr,输入一行 openssl req -new -key server.key -out server.csr


      image.png
    • 接着会要你输入密码


      image.png
    • 输入密码后会出现下面这样


      image.png
    • 输入国家,地区,城市,组织,组织单位,域名和邮箱。


      image.png
    • 我这里省略了地区、城市、组织单位、和邮箱,只填了组织名称和域名如上图

    • 当然你们也可以自己填比如下面举例这样

    • 国家 CN

    • 地区 Beijing(知名度高)

    • 城市 Beijing(知名度高)

    • 组织 chqhai(随便写的自己名字)

    • 组织单位 info technology (信息技术)

    • 域名跟邮箱,你们自己应该清楚吧,搞定后有需要你输密码:


      image.png
    • 然后定义一个名称,我这里省略:


      image.png
    • 去除使用私钥是的口令验证:openssl rsa -in server.key -out server_no_passwd.key
      然后需要输入之前的密码,如下图:


      image.png
    • 标记证书使用私钥和csr:openssl x509 -req -days 365 -in server.csr -signkey server_no_passwd.key -out server.crt

    • x509是一种证书格式

    • server.crt就是我们需要的证书


      image.png
    • 至此证书配置就大功告成了。得到证书,总共有4个文件,server.key 是私钥,server_no_passwd.key是删除密码产生的,server.csr是用来生成证书的,server.crt
      是安全证书.


      image.png

    接下来配置Nginx的Https Server

    • ssl_certificate server.crt的地址;
    • ssl_certificate_key server_no_passwd.key的地址;
    #HTTPS server
        server{
            listen       443 ssl;
            server_name  www.huangyibo.com;
            ssl on;
            ssl_certificate      D:\OpenSSL-Win64\bin\server.crt;
            ssl_certificate_key  D:\OpenSSL-Win64\bin\server_no_passwd.key;
            location / {
                proxy_pass http://tomcatserver;
            }
        }
    
    image.png
    • upstream.conf配置


      image.png

    tomcat增加对https的支持:

    Connector 8080节点加入 redirectPort="443" proxyPort="443"
    redirectPort :当http请求有安全约束才会转到443端口使用ssl传输


    image.png
    • 到此,Https证书、Nginx和Tomcat的Https配置全部完成。但是这是自签名证书,浏览器是不识别的。

    centos7安装openssl步骤

    方法一、直接安装,通过yum install openssl-devel,自动解决依赖包安装

    yum install openssl-devel
    

    方法二、下载源码编译安装

    • 首先到官网下载tar包:

    https://www.openssl.org/source/

    • 假设需要安装在服务器/usr/local/openssl目录,那么需要先创建该目录:
    mkdir /usr/local/openssl
    
    • 然后可以解包到该目录:
    tar -zxvf ./openssl-1.1.0g.tar.gz -C /usr/local/openssl
    
    • 切换到源码目录安装:
    cd /usr/local/openssl/openssl-1.1.0g
    
    ./config -fPIC --prefix=/usr/local/openssl enable-shared
    
    ./config -t
    
    make && make install
    
    • 注意: config的时候,需要加上 -fPIC 和 -t,部分环境依赖一些头文件和lib(比如ruby)。

    • 这里如果出现如下错误

    make[1]: gcc: Command not found
    
    image.png
    • 保证系统网络畅通以后,执行命令 yum -y install gcc 安装GCC(注意,一定要忘了顺畅,不然安装不了)

    • 然后安装安装 Openssl:make install

    查看路径

    which openssl
    
    • 验证:
    openssl version
    或
    openssl version -a
    
    • 这里附上完整的操作图:


      image.png

    升级openssl环境至openssl-1.0.1g

    • 查看源版本
    [root@zj ~]# openssl version -a
    
    OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
    
    • 下载openssl-1.0.1g.tar.gz
    wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
    
    • 更新zlib
    yum install -y zlib
    
    • 解压安装
    tar zxf openssl-1.0.1g.tar.gz
    cd openssl-1.0.1g
    ./config shared zlib
    make
    make install
    mv /usr/bin/openssl /usr/bin/openssl.bak
    mv /usr/include/openssl /usr/include/openssl.bak
    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/ssl/include/openssl /usr/include/openssl
    echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
    ldconfig -v
    
    • 查看是否升级成功
    [root@zj ~]# openssl version -a
    
    OpenSSL 1.0.1g 7 Apr 2014
    

    相关文章

      网友评论

          本文标题:Nginx配置https请求

          本文链接:https://www.haomeiwen.com/subject/qritjqtx.html