美文网首页
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