博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTPS安全证书访问连接实践配置
阅读量:6374 次
发布时间:2019-06-23

本文共 4412 字,大约阅读时间需要 14 分钟。

网络安全涉及的三个问题

①. 网络安全问题-数据机密性问题
传输的数据可能会被第三方随时都能看到

②. 网络安全问题-数据完整性问题

传输的数据不能随意让任何人进行修改

③. 网络安全问题-身份验证问题

第一次通讯时,需要确认通讯双方的身份正确


网络安全涉及的问题说明:

①. 网络安全问题-数据机密性问题解决
a) 利用普通加密算法解决机密性
利用相应算法,对传输数据(明文数据)进行加密(密文数据);再利用对应算法,将加密数据解密变为真实数据
优点:实现了数据机密传输,避免了明文传输数据的危险性。
缺点:利用加密算法,将明文改密文,如果第三方获得加密算法,即可将传输密文再次变为明文

b) 利用对称加密算法解决机密性(重要的一种加密方式)

对称加密算法就好比将普通算法的规则手册放入到了保险柜里,只有获取保险柜和保险柜钥匙才能获取《算法
优点:密钥加密算法计算速度非常快;解决了普通加密算法的安全问题
缺点:加解密过程的安全性完全依赖于密钥,并且对称加密密钥是公开的,当通讯加密对象过多时,无法解决

②. 网络安全问题-数据完整性问题解决

a) 利用单项加密算法(全网备份数据完整性)
根据数据生成特征码(数据指纹信息);接收数据方获取数据信息算出特征码,验证是否与发送过来的特征码一
若特征码一致,表示数据完整性没被破坏;若特征码不一致,表示数据已被破坏,直接丢弃

扩展说明:

01:不同数据的特征码(数据指纹信息)是不可能一致的
单项加密算法特征
· 数据输入一样,特征码信息输出必然相同
· 雪崩效应,输入的微小改变,将造成输出的巨大改变
· 定长输出,无论源数据多大,但结果都是一样的
· 不可逆的,无法根据数据指纹,还原出原来的数据信息。

优点:有效的解决了数据完整性问题

缺点:没有考虑中间人对数据信息的影响

b)利用单项加密算法(加密特征码)

利用对称加密算法对数据加密的同时,也对特征码进行加密;
接收方拥有和发送方一样的密钥,才可以解密加密后的数据和特征码
而中间人加密的特征码是没有办法让接收方进行解密的,所以接收方获取不了特征码,直接丢弃数据

扩展说明:

01:那么对称密钥如何有效的让通讯双方获取呢
需要进行对称密钥协商过程,即通过密钥交换机制(Internet key exchange IKE)
实现密钥交换机制的协议称为diffie-hellman协议

③. 网络安全问题-身份验证问题解决

a)利用非对称密钥加密算法(公钥加密算法)
发送方建立私钥和公钥,将公钥发送给接收方,从而实现发送数据方的身份验证

公钥信息在网站访问过程中,被称为证书(×××)

网络安全问题结论:实现网络安全性,需要解决问题的顺序为

  1. 解决身份验证问题
  2. 解决数据完整性问题
  3. 解决数据机密性问题

网络安全证书由来:

根据上述结论可知,网络安全性最首先要解决的就是身份验证问题;
而解决身份验证问题,最主要的方式就是借助私钥和公钥
而最主要的公钥信息获取就变得尤为重要;利用第三方公正者,公正公钥信息

目前标准的证书存储格式是x509,还有其他的证书格式,需要包含的内容为:

证书==×××
? 公钥信息,以及证书过期时间
? 证书的合法拥有人信息
? 证书该如何被使用(不用关注)
? CA颁发机构信息
? CA签名的校验码

OpenSSL软件详细说明

获取OpenSSL软件的版本信息:

rpm -qa opensslopenssl version                     <- 查看openssl版本信息

获取OpenSSL配置文件信息:

/etc/pki/tls/openssl.cnf <- openssl配置文件,主要用于配置成私有ca时进行使用
说明:基本上openssl配置文件不需要运维过多修改配置

利用openssl软件实现HTTPS访问过程

实现HTTPS:
第一步:创建出一个私钥文件(出生证明) --- 运维人员需要会

openssl genrsa 2048 >server.key         <- 创建私钥信息,并指定私钥的长度为2048,并将生成的私钥信息保存在一个文件中openssl genrsa -out server.key 2048     <- 将私钥信息直接进行保存,加密长度一定要放在输出文件后面(umask 077;openssl genrsa -out server1024.key 1024)                                             <- 利用小括号,实现子shell功能,临时修改umask,使之创建的私钥文件权限为600

第二步:生成证书文件信息,有两种方式

①. 生成自签发证书 --- 运维人员可以自行操作

[root@NFS-server-01 ~]# openssl req -new -x509 -key server.key -out server.crt -days 365req     <- 用于请求创建一个证书文件new     <- 表示创建的是新的证书x509    <- 表示定义证书的格式为标准格式key     <- 表示调用的私钥文件信息out     <- 表示输出证书文件信息days    <- 表示证书的有效期You are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:CN                    <- 定义生成证书的国家State or Province Name (full name) []:BJ                <- 定义生成证书的省份Locality Name (eg, city) [Default City]:BJ              <- 定义生成证书的城市Organization Name (eg, company) [Default Company Ltd]:oldboy              <- 定义生成证书的组织Organizational Unit Name (eg, section) []:it                              <- 定义生成证书的职能部门Common Name (eg, your name or your server's hostname) []:oldboy.com.cn    <- 定义主机服务器名称说明:此输出信息非常重要,客户端在获取证书前,会利用主机名与相应服务器之间建立连接,然后获得证书Email Address []:

②. 向证书颁发机构申请证书

首先生成请求证书文件,然后提交给ca机构。 --- 运维人员完成

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

ca机构会将证书文件返回给用户,用户获取得到证书文件 (×××)

不同格式证书的转换:

比如,PEM转换为PKCS

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.pem -certfile ca.crt

openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx

自签名证书生成 步骤总结:

================================

生成ca私钥openssl genrsa -out ca.key 2048生成ca请求证书openssl req -new -key ca.key -out ca.csr生成ca机构证书openssl x509 -req -in ca.csr -signkey ca.key -out ca.crtca机构证书转化为pfx格式openssl pkcs12 -inkey  ca.key -in  ca.crt -export -out  ca.pfx

================================

生成服务端私钥openssl genrsa -out server.key 2048生成服务端请求证书openssl req -new -key server.key -out server.csr生成服务端证书openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crtcrt格式转化为pfx格式openssl pkcs12 -inkey  server.key -in  server.crt -export -out  server.pfx

==================================

使用方法:

本地IE浏览器安装 ca.crt或者ca.pfx CA根证书到 --->受信任根证书颁发机构

访问地址:

nginx server 服务端使用到的文件是 server.crt; server.key;

配置如下(已经配置):

server {    listen      8443;    server_name ip;    ssl on;    ssl_certificate ssl/server.crt;    ssl_certificate_key ssl/server.key;    location / {        root   html;        index  index.html index.htm;    }    }

第四步:利用浏览器访问测试

ssl模块官方链接:

HTTPS证书生成原理和部署细节

转载于:https://blog.51cto.com/12083623/2356552

你可能感兴趣的文章
社区系统ThinkSNS Plus 后端1.7.5 更新日志
查看>>
Percona-XtraDB-Cluster安装
查看>>
Kubernetes Service
查看>>
【197期推荐】HIS 产品化和实施方面的感受和经验分享
查看>>
The Joel Test: 12 Steps to Better Code
查看>>
Pagination using AngularJS (with filtering)
查看>>
谈谈养老保险的那点猫腻 我愤怒了!
查看>>
css伪类 :first-child :nth-child() 详解
查看>>
Dubbo超时机制导致的雪崩连接
查看>>
十进制转二进制
查看>>
29、mysql 源码安装
查看>>
确定 ESXi/ESX 4.x、ESXi 5.x 和 ESXi 6.x 中的网络/存储器固件版本和驱
查看>>
IP PBX
查看>>
equals用法 equals,== 用法比较
查看>>
How to Clear DNS Cache
查看>>
DelegatingFilterProxy
查看>>
python学习笔记(1)
查看>>
Java 进行 RSA 加解密
查看>>
Hbase原理、基本概念、基本架构
查看>>
MQ 对比
查看>>