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;
        }
    }

}

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

时间: 02-13

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

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

php学习day7--函数的相关知识

今天我们主要学了函数的相关知识,是个比较基础的知识,但也是很重要的. 一.函数 函数就类似于一个工具,我们写好函数之后可以直接进行调用,可以很大的减少代码的从用性,提高页面性能和可读性. 1.函数的定义 在php中函数的定义方式为: function  name($形参1,$形参2.....){ 要执行的代码 return  123: } 在上方的函数定义式中,name代表函数名,小括号内是形参,是用来传递参数,花括号中的就是调用时需要执行的代码. 函数的调用方式: name(实参1,实参2,.

深入浅出安卓学习相关知识,如何从零学好移动开发

原文发表自我的个人主页,欢迎大家访问 http://purplesword.info/mobile-develop 由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向. 有不少同学问我如何学习安卓,要学些什么,难不难学.之前一直没有想好应该怎么回答这个问题,只是简单的说安卓自身门槛不高,并不难学.因为我觉得准确回答一个类似这样的问题往往需要灵感.现在根据我的学习体验,做个大概的总结. 1.我为什么学安卓 我从刚开始接触安卓开发到现在也有两三年的时间了

程序员面试笔试宝典学习记录(三)(数据库相关知识)

关系数据库系统与文件数据库系统的区别如下: (a)关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化. (b)关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件. (c)文件数据库系统可以实现多媒体文件管理,支持C/S工作模式. acid,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability). 数据查询:select sele

黑马程序员---Objective-C基础学习---类、对象、方法相关知识笔记

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类.对象.方法相关知识笔记 Objective-C相对于C语言有了面向对象的特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简.下面是一些相关知识笔记. 类定义 成员变量 方法和属性 self关键字 类定义 在C#.Java等其他高级语言中定义一个类是相当简单点的,直接一个关键字class加一对大括号基本就完成了,但是在ObjC中类的定义相对变化比较大.现

Logback相关知识汇总

例如:%-4relative 表示,将输出从程序启动到创建日志记录的时间 进行左对齐 且最小宽度为4格式修饰符,与转换符共同使用:可选的格式修饰符位于“%”和转换符之间.第一个可选修饰符是左对齐 标志,符号是减号“-”:接着是可选的最小宽度 修饰符,用十进制数表示.如果字符小于最小宽度,则左填充或右填充,默认是左填充(即右对齐),填充符为空格.如果字符大于最小宽度,字符永远不会被截断.最大宽度 修饰符,符号是点号"."后面加十进制数.如果字符大于最大宽度,则从前面截断.点符号“.”后面

(整理)ubuntu 的 相关知识(来自 鸟哥的私房菜)

1. Linux 文件权限概念 $ ls 察看文件的指令 $ ls -al 出所有的文件详细的权限与属性 (包含隐藏档,就是文件名第一个字符为『 . 』的文件) 在你第一次以root身份登入Linux时, 如果你输入上述指令后,应该有上列的几个东西,先解释一下上面七个字段个别的意思: 图2.1.1.文件属性的示意图 第一栏代表这个文件的类型与权限(permission): 这个地方最需要注意了!仔细看的话,你应该可以发现这一栏其实共有十个字符:(图2.1.1及图2.1.2内的权限并无关系) 图2

数据挖掘相关知识

因为最近在复习数据挖掘...故百度了解数据挖掘的相关知识... 什么是数据挖掘?? 数据挖掘(英语:Data mining),又译为资料探勘.数据采矿.它是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤.数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程.数据挖掘通常与计算机科学有关,并通过统计.在线分析处理.情报检索.机器学习.专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标. 为什么要进行数据挖掘