Nginx学习(五)SSL相关知识

  • nginx配置ssl双向验证 nginx https ssl证书配置

1. CA(证书权威机构)的配置

由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书、服务端证书、客户端证书中都相同

 Country Name State or Province Name    
 Locality Name    
 Organization Name    
 Organizational Unit Name

修改CA配置文件

vim /etc/pki/tls/openssl.cnf
database        = $dir/index.txt 
certificate     = $dir/cacert.crt
serial          = $dir/serial
crlnumber       = $dir/crlnumber 
private_key     = $dir/private/cakey.key
.......
[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
countryName_default             = CHINA
.......
localityName                    = Locality Name (eg, city)
localityName_default    = BeiJing
.......
0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = Co-Mall
........
organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default  = PlatForm

生成证书私钥

[[email protected] pki]# cd /etc/pki/CA/
[[email protected] CA]# (umask 077;openssl genrsa  -out private/cakey.key 2048)
Generating RSA private key, 2048 bit long modulus
...............................+++
......+++
e is 65537 (0x10001)
[[email protected] CA]# touch index.txt
[[email protected] CA]# echo 01 >  serial
[[email protected] CA]# echo 01 > crlnumber

生成自签证书

[[email protected] CA]# openssl req -new -x509 -key private/cakey.key -out cacert.crt -days 3650
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [CN]:
State or Province Name (full name) [BJ]:
Locality Name (eg, city) [BeiJing]:
Organization Name (eg, company) [Co-Mall]:
Organizational Unit Name (eg, section) [PlatForm]:
Common Name (eg, your name or your server‘s hostname) []:www.test01.com
Email Address []:

2.在web服务器上生成私钥与证书请求文件,并将证书请求文件传给CA

[[email protected] conf]# mkdir /usr/local/nginx-1.6.2/ssl
[[email protected] conf]# cd /usr/local/nginx-1.6.2/ssl/
#生成私钥文件
[[email protected] ssl]# (umask 077; openssl genrsa 1024 > nginx.key)
Generating RSA private key, 1024 bit long modulus
..................++++++
.......................................................................................++++++
e is 65537 (0x10001)
#生成csr请求文件
[[email protected] ssl]# openssl req -new -key nginx.key -out nginx.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [CN]:
State or Province Name (full name) [BJ]:
Locality Name (eg, city) [BeiJing]:
Organization Name (eg, company) [Co-Mall]:
Organizational Unit Name (eg, section) [PlatForm]:
Common Name (eg, your name or your server‘s hostname) []:www.test02.com
Email Address []:

Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

CA为web服务器的请求文件颁发证书文件,并传给web服务器

[[email protected] ssl]# cp nginx.csr /etc/pki/CA/
[[email protected] ssl]# cd /etc/pki/CA/
[[email protected] CA]# openssl ca -in nginx.csr -out certs/nginx.crt -days 3650
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Jan  8 22:29:57 2015 GMT
            Not After : Jan  5 22:29:57 2025 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = BJ
            organizationName          = Co-Mall
            organizationalUnitName    = PlatForm
            commonName                = www.test02.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                65:2A:83:82:43:A5:60:E5:A7:1A:56:16:6C:FC:AB:C9:FB:76:B5:DB
            X509v3 Authority Key Identifier: 
                keyid:32:5F:F3:F7:0E:8C:DD:6E:83:08:97:3D:C2:A0:38:EA:1F:2D:D9:35

Certificate is to be certified until Jan  5 22:29:57 2025 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[[email protected] certs]# cp nginx.crt /usr/local/nginx-1.6.2/ssl/

修改nginx配置文件

server {
        listen       443 ssl;
        server_name  www.test02.com;

        ssl_certificate      /usr/local/nginx-1.6.2/ssl/nginx.crt;
        ssl_certificate_key  /usr/local/nginx-1.6.2/ssl/nginx.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

}

我已充分了解可能的风险-->添加例外-->确认安全例外

时间: 2024-12-27 08:37:18

Nginx学习(五)SSL相关知识的相关文章

国内SAP从业者们2020年最想学习的SAP相关知识分类的调查问卷结果

本文是2019年第91篇原创文章,是汪子熙公众号总共第181篇原创推送,也是2019年最后一篇文章. 12月19日Jerry曾经发起了一个问卷调查:亲爱的SAP从业者们,做个调查,搜集了一下大家明年最想从这个公众号上看到的文章内容分类. Jerry非常感谢花费自己宝贵时间投票的朋友们.如今投票已经结束,一共有400份有效投票,结果统计如下: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sPmyygF7-1578198246536)(https://upload-

Node.js(五)——HTTP相关知识

什么是http及相关的知识 什么是http? http就是一种协议计算机之间要共同遵守这个协议的规则 才能彼此之间相互通信 当然现在不局限于计算机,手机.冰箱.电视机等智能终端 这个协议在场景中的使用流程是如何的? 通常由一个http客户端发起一个请求,创建端口 而http服务器在端口监听客户端的请求 一旦收到请求,http服务器向客户端返回一个状态和相对应的内容

nginx 学习五 filter模块简介和实现一个简单的filter模块

1 nginx过滤模块简介 过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理.它的处理时间在获取回复内容之后, 向用户发送响应之前.它的处理过程分为两个阶段,过滤HTTP回复的头部和主体,在这两个阶段可以分别对头部和主体 进行修改. 2 过滤模块执行顺序 2.1 ngx_http_output_(head, body)_filter_pt 先看一下nginx常用的过滤模块,在ngx_moudles.c中有一下代码: ngx_module_t *ngx_modules

JS学习之ajax相关知识和ajax的封装

XMLHttpRequest对象 1. XMLHttpRequest用于在后台与服务器交换数据,是AJAX之所以能对网页进行局部刷新的核心,同时Ajax技术离开了XMLHttpRequest对象将失去与服务器异步通信的能力. 2:不同的浏览器创建XMLHttpRequest对象使用的语句是不同的. 3:3.XMLHttpRequest对象方法与属性 方法 描述 open(method,url,[async],[username],[password]) 规定请求的类型.URL 以及是否异步处理请

nginx学习(五):nginx.conf 核心配置文件详解

整体结构 详细信息 1.设置worker进程的用户,指的linux中的用户,会涉及到nginx操作目录或文件的一些权限,默认为nobody user root; 2.worker进程工作数设置,一般来说CPU有几个,就设置几个,或者设置为N-1也行 worker_processes 1; 3.nginx 日志级别debug | info | notice | warn | error | crit | alert | emerg,错误级别从左到右越来越大 4.设置nginx进程 pid pid

DL学习笔记-CNN 相关知识

1968年,hubel对猫的视觉皮层细胞研究, 提出receptive filed概念,视觉细胞可以分为简单细胞和复杂细胞,分别对感受野的范围不同,在生物学基础上,研究出针对二维图像的卷积神经网络. 传统图像分类:特征提取+特征表达+分类CNN将这些方法集合在一起. 一.卷积神经网络特征 1.局部接受域 感受野宽度,视网膜,m层.m+1层,感受野范围外是没有响应的, 2.权值共享 权值相同的进行共享,进行平移. 二.卷积神经网络结构 典型结构 1.卷积层(Convolution) 图像是一个二维

端口相关知识学习笔记

端口相关知识学习笔记 端口相关知识学习笔记 本周主要精力是放在挂接上,所以知识矩阵的学习回归到根本上,所以这周发的学习笔记是关于计算机端口的相关介绍. 有过一些黑客攻击方面知识的读者都会知道,其实那些所谓的黑客并不是像人们想象那样从天而降,而是实实在在从您的计算机"大门"中自由出入.计算机的" 大门"就是我们平常所说的"端口",它包括计算机的物理端口,如计算机的串口.并口.输入/输出设备以及适配器接口等(这些端口都是可见的),但更多的是不可见的软

Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4节 透视表和交叉表 第5节 时间序列 第6节 日期的规范.频率以及移动 第7节 时区处理 第8节 时期及算术运算 第9节 重采样及频率转换 第10节 时间序列绘图 groupby 技术 一.实验简介 Python 数据分析(二)需要同学们先行学完 Python 数据分析(一)的课程. 对数据集进行分

使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识

一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserver:这是一款适合开发阶段使用的服务器,不能对大量请求进行同时处理,不适合运行在真实的生产环境中,在实际生产环境中使用WSGI作为接口,连接web和python代码(也就是django项目): 2.WSGI:Web服务器网关接口,英文为Python Web Server Gateway Interface,缩写为WSGI,是