加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

通过SSL证书在Nginx中配置Https构建加密通道保证数据传输安全

发布时间:2019-09-30 07:27:23 所属栏目:策划 来源:互联网蚂蚁哥
导读:副标题#e# 1、先说说Nginx-HTTPS加密技术 超文本传输安全协议(HTTPS)是以安全为目标的HTTP通道,简单来说就是HTTP安全版。https由两个部分组成:HTTP+SSL/TLS,在http基础上加上了一层加密信息模块,服务端和客户端的信息插损胡都会通过TLS进行加密,传输的
副标题[/!--empirenews.page--]

通过SSL证书在Nginx中配置Https构建加密通道保证数据传输安全

 1、先说说Nginx-HTTPS加密技术

超文本传输安全协议(HTTPS)是以安全为目标的HTTP通道,简单来说就是HTTP安全版。https由两个部分组成:HTTP+SSL/TLS,在http基础上加上了一层加密信息模块,服务端和客户端的信息插损胡都会通过TLS进行加密,传输的数据都是加密后的数据

为了解决HTTP协议的这些缺陷,需要使用另一种协议:HTTPS。为了数据传输的安全性,HTTPS在http的基础上加了SSL协议,SSL依靠证书验证身份,并为浏览器和服务器之间通信加密;

SSL证书是一种数字证书,使用Secure Socket Layer协议在浏览器和web服务器之间建立一条安全通道,从而实现数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听,而且用户可以通过服务器证书验证所访问网站是否真实可靠;

加密的HTTPS和HTTP的区别:超文本传输协议HTTP协议被用于在web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的加密数据,如果攻击者截取了web浏览器和网站服务器之间的传输报文,就可以直接读取其中信息,因此,http协议不适合传输一些铭感信息;

HTTPS加密,解密,验证完成过程如图所示:

通过SSL证书在Nginx中配置https构建加密通道保证数据传输安全

首先客户端发送请求,服务端接受到请求之后并申请生成公私秘钥,同时将公钥证书发送给客户端,客户端收到之后并通过TLS进行解析验证,如果证书没有问题就会在客户端生成一个加密随机值,将随机值发送给服务端,服务端接收到之后,用自己的私钥解密,从而得到这个随机值,然后通过这个随机值对内容进行对称加密。服务端将用私钥加密后的信息发送给客户端,最后,客户端用之前生成的私钥来解密服务器端发过来的信息,获取解密后的内容

1)客户端向服务端发起HTTPS请求,用户在浏览器输入https网址,然后连接到Nginx server的443端口2)服务端采用https协议有一套数字证书,该证书可以自行配置,也可以向证书管理组织去申请,该证书其本质是公钥和私钥3)将公钥传送给客户端,证书包含了很多信息,例如,证书的颁发机构,过期时间等等4)客户端解析证书,由客户端的TLS完成,首先会验证公钥是否有效,比如颁发的机构,过期时间等,如果发生异常,则会弹出警告信息,提示证书存在问题,如果证书没有问题,就会随机生成数值,然后用证书对该随机数值进行加密5)将证书加密后的随机值传送到服务器,让服务器获取该随机值,后续客户端和服务端可以通过该随机值来进行加密解密6)服务端用私钥解密后,得到了客户端传过来的随机值,然后把内容通过该值进行了对称加密7)服务端将私钥加密后的信息发给客户端8)客户端用之前生成的私钥来解密服务端发送过来的信息,获取解密后的内容

2、关于SSL证书

互联网的安全通信,是建立在SSL/TLS协议之上,SSL/TLS协议的基本思路是采用公钥加密法,也就是,客户端先向服务器端索取公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。通过这种加解密机制,可以保障所有信息都是加密传播,无法窃听,同时,传输具有校验机制,一旦信息被篡改,可以立刻发现,最后,通过身份证书机制,可以防止身份被冒充。由此可知,SSL证书主要有两个功能:加密和身份认证。

目前市面上的SSL证书都是通过第三方SSL证书机构颁发的,常见可靠的第三方 SSL证书颁发机构有DigiCert、GeoTrust、GlobalSign、Comodo等。

根据不同使用环境,SSL证书可分为如下几种:

企业级别:EV(Extended Validation)、OV(Organization Validation) 个人级别:IV(Identity Validation)、DV(Domain Validation)

其中 EV、OV、IV 需要付费,企业用户推荐使用EV或OV证书,个人用户推荐使用IV证书,DV证书虽有免费的可用,但它是最低端的SSL证书。它不显示单位名称,也不能证明网站的真实身份,只能验证域名所有权,仅起到加密传输信息的作用,适合个人网站或非电商网站。

3、使用OpenSSL生成私钥文件和CSR文件

Nginx配置HTTPS并不复杂,主要有两个步骤:签署第三方可信任的 SSL证书和配置 HTTPS,下面依次介绍。

要配置HTTPS需要用到一个私钥文件(以.key结尾)和一个证书文件(以.crt结尾) ,而证书文件是由第三方证书颁发机构签发的,要让第三方证书颁发机构签发证书文件,还需要给他们提供一个证书签署请求文件(以.csr结尾)。下面简单介绍下私钥文件和csr文件。

私钥文件:以.key结尾的一个文件,由证书申请者生成,它是证书申请者的私钥文件,和证书里面的公钥配对使用,在 HTTPS 握手通讯过程中需要使用私钥去解密客戶端发來的经过证书公钥加密的随机数信息,它是HTTPS加密通讯过程非常重要的文件,在配置HTTPS的時候要用到。 CSR文件:CSR全称是Cerificate Signing Request,即证书签署请求文件,此文件里面包含申请者的DN(Distinguished Name,标识名)和公钥信息,此文件由证书申请者生成,同时需要提供给第三方证书颁发机构。证书颁发机构拿到CSR文件后,使用其根证书私钥对证书进行加密并生成CRT证书文件,CRT文件里面包含证书加密信息以及申请者的DN及公钥信息,最后,第三方证书颁发机构会将CRT文件发给证书申请者,这样就完成了证书文件的申请过程。

在申请SSL证书之前,证书申请者需要先生成一个私钥文件和一个CSR文件,可通过openssl命令来生成这两个文件,操作如下:

[root@iZ23sl33esbZ ~]# openssl req -new -newkey rsa:2048 -sha256 -nodes -out iivey.csr -keyout iivey.key -subj "/C=CN/ST=beijing/L=beijing/O=iivey Inc./OU=Web Security/CN=iivey.com"

上面这个命令会生成一个CRS文件iivey.csr和私钥文件iivey.key。其中,相关字段含义如下:

C字段:即Country,表示单位所在国家,为两位数的国家缩写,如CN表示中国 ST字段: State/Province,单位所在州或省 L字段: Locality,单位所在城市/或县区 O字段: Organization,此网站的单位名称 OU字段: Organization Unit,下属部门名称;也常常用于显示其他证书相关信息,如证书类型,证书产品名称或身份验证类型或验证内容等 CN字段:Common Name,网站的域名

接着,将生成的CSR文件提供给CA机构,签署成功后,CA机构就会发给我们一个CRT证书文件,假定这个文件是iivey.crt,在获得SSL证书文件后,就可以在Nginx配置文件里配置HTTPS了。

4、Nginx下配置SSL证书

要开启HTTPS服务,其实就是在Nginx上开启一个443监听端口,下面是HTTPS服务在Nginx下的配置方式,这里仅列出了server段的配置:

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读