nginx配置https
Posted 黑马程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)客户端和服务器互相验证对方的证书
全性很高,一般网上银行会这么搞。U盾、密码卡,就是这个原理的应用。
2)客户端验证服务器的证书,客户端自己不提供证书
Web网站只采用这种方式。因为没有办法实现和所有访问用户交换密钥。
7、生成私钥文件
openssl genrsa -out https.key 1024
openssl:是生成密码的工具之一。要使用它,必需要安装该软件。
genrsa:指明生成密钥的种类。
-out:指定生成的密钥存储位置与名称。
https.key:是私钥的存储文件名。没有带路径,表示相对路径。
1024:密钥的长度。1024比较适中,太短不安全,太长解密时间太长。
8、生成证书请求文件
openssl req -new -key https.key -out https.csr
openssl:是生成密码的工具之一。要使用它,必需要安装该软件。
req:指明生成密钥的种类。
-new:指明是证书请求文件。
-key:指定需要的私钥文件路径。
https.key:私钥文件的路径。这表示相对路径,该路径下面必需要有该文件。
-out:指定生成的证书请求存储位置与名称。
https.csr:是证书请求的存储文件名。没有带路径,表示相对路径。
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:是公钥的存储文件名。没有带路径,表示相对路径。
10、配置nginx的https
server_name:域名;
使用的域名,应该是生成证书请求文件时写入的域名。
ssl_certificate 公钥证书文件;
ssl_certificate_key 私钥证书文件;
证书文件写的是路径与文件名,写的位置一定要是能够找到的。
实践:nginx.conf配置内容
证书文件写的是相对绝对。https.crt,https.key同nginx.conf在同一个目录下面。
11、请求测试
请求示例成功,但是浏览器提示:不安全!
浏览器使用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的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu 14.04 nginx 1.12.2 配置https遇见的坑
expressjs设置tls连接https nginx服务器请求