nginx配置https

Posted 黑马程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx配置https相关的知识,希望对你有一定的参考价值。

黑马程序员

传智播客旗下互联网资讯,学习资源免费分享平台

nginx配置https


一、https简介

https协议的使用越来越广泛了。要保证Web浏览器到服务器的安全连接,HTTPS几乎是唯一选择。

https关系到的内容复杂而广泛,简化一下流程,可以配置并且实现单向验证的。

二、https特性

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

三、https操作案例

1、对称加密

加密使用的密码,解密也是使用同样的密码。这个就是对称加密

2、非对称加密

加密使用单独的密码,解密使用单独的密码。这个就是非对称加密。

加密与解密使用的密码是不相同的,这是数学上的一个素数积求因子的原理应用。

3、公钥证书与私钥证书

公钥证书与私钥证书,就是存储了密码内容的二个文件。它们俩存储的密码是不相同的。

是根据素数积求因子的原理产生的一对密码。

4、公钥加密

公钥加密数据,使用私钥解密数据。这个情况被称为加密解密。

5、私钥加密

私钥加密数据,使用公钥解密数据。这个情况被称为签名和验证签名

6、SSL使用(公钥与私钥)证书来创建安全连接的两种验证模式

1)客户端和服务器互相验证对方的证书

nginx配置https

全性很高,一般网上银行会这么搞。U盾、密码卡,就是这个原理的应用。


2)客户端验证服务器的证书,客户端自己不提供证书

nginx配置https

Web网站只采用这种方式。因为没有办法实现和所有访问用户交换密钥。


7、生成私钥文件

openssl   genrsa  -out https.key  1024

openssl:是生成密码的工具之一。要使用它,必需要安装该软件。

genrsa:指明生成密钥的种类。

-out:指定生成的密钥存储位置与名称。

https.key:是私钥的存储文件名。没有带路径,表示相对路径。

1024:密钥的长度。1024比较适中,太短不安全,太长解密时间太长。


nginx配置https

8、生成证书请求文件

openssl  req  -new  -key https.key  -out https.csr

openssl:是生成密码的工具之一。要使用它,必需要安装该软件。

req:指明生成密钥的种类。

-new:指明是证书请求文件。

-key:指定需要的私钥文件路径。

https.key:私钥文件的路径。这表示相对路径,该路径下面必需要有该文件。

-out:指定生成的证书请求存储位置与名称。

https.csr:是证书请求的存储文件名。没有带路径,表示相对路径。


nginx配置https

Country Name (2 letter code) [XX]: 国籍

State or Province Name (full name) []: 省份

Locality Name (eg, city) [Default City]: 城市

Organization Name (eg, company) [Default Company Ltd]: 组织名称

Organizational Unit Name (eg, section) []: 组织部门

Common Name (eg, your name or your server’s hostname) []: 域名

A challenge password []: 密码 | 直接回车使用空密码

A optional company name []: 可选 | 直接回车

9、生成公钥文件

openssl  x509  -req  -days 365  -in https.csr  -signkey https.key  -out https.crt

openssl:是生成密码的工具之一。要使用它,必需要安装该软件。

x509:指明生成密钥的种类。

-req:使用证书请求,生成公钥。

-days:指定公钥的使用时间。单位/天。

365:365天。公钥的有效期是365天。

-in:指定证书请求文件的路径。

https.csr:证书请求文件的路径。这表示相对路径,该路径下面必需要有该文件。

-signkey:指定私钥文件的路径。

https.key:私钥文件的路径。这表示相对路径,该路径下面必需要有该文件。

-out:指定生成的公钥存储位置与名称。

https.crt:是公钥的存储文件名。没有带路径,表示相对路径。

nginx配置https

10、配置nginx的https

server_name:域名;

使用的域名,应该是生成证书请求文件时写入的域名。

ssl_certificate        公钥证书文件;

ssl_certificate_key    私钥证书文件;

    证书文件写的是路径与文件名,写的位置一定要是能够找到的。

实践:nginx.conf配置内容

nginx配置https

证书文件写的是相对绝对。https.crt,https.key同nginx.conf在同一个目录下面。

11、请求测试

nginx配置https

请求示例成功,但是浏览器提示:不安全!

浏览器使用https请求web服务器的时候,公钥证书文件会被下载到浏览器中。浏览器会对证书文件进行验证。验证不通过,所以报不安全提示。

公钥证书要让浏览器验证通过,必需由CA机构签发。CA机构签发证书要收取一定的费用。所有只是出于管理目的,可以创建自签名证书,保证管理员通过浏览器安全连接到服务器。




PHP+H5全栈工程师即将隆重开班啦

0基础的朋友看介里

北京校区基础班:2018-11-08

深圳校区基础班:2018-11-18

上海校区基础班:2018-11-08

广州校区基础班:2018-11-15


有基础的朋友看介里 

北京校区就业班:2018-12-01

深圳校区就业班:2018-12-09

上海校区就业班:2018-12-01

广州校区就业班:2018-12-07


名额有限,先到先得。





nginx配置https
(点击图片可查看)



长按二维码,加播妞个人微信号
做最懂你的人


             

▼点击 阅读原文抢基础班免费名额

以上是关于nginx配置https的主要内容,如果未能解决你的问题,请参考以下文章

安装nginx

ubuntu 14.04 nginx 1.12.2 配置https遇见的坑

nginx重新编译添加ssl模块

expressjs设置tls连接https nginx服务器请求

http请求报错:The requested resource is currently locked ?

HTTP 到 HTTPS Nginx 重定向过多