A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 播妞 程序媛   /  2018-10-23 11:23  /  1296 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、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) []: 域名
Email Address []: 邮箱
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机构签发证书要收取一定的费用。所有只是出于管理目的,可以创建自签名证书,保证管理员通过浏览器安全连接到服务器。



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马