https网站安全访问服务

https网站安全访问服务如果第三方获得加密算法,即可将传输密文再次变为明文b)利用对称加密算法解决机密性对称加密算法就好比将普通算法的规则手册放入到了保险柜里,只有获取

大家好,欢迎来到IT知识分享网。

http协议原理——温习

01: DNS解析原理

02:tcp三次握手

03:http请求报文(请求起始行 请求头 空行 请求主体)

04:http响应报文(响应起始行 响应头部信息 响应主体)

05:tcp四次挥手

  • 网络基础知识

· TCP 三次握手/四次挥手过程

· TCP 十一种状态集转换

HTTPS安全证书访问连接知识

  • 网络安全涉及的问题

①. 网络安全问题-数据机密性问题

传输的数据可能会被第三方随时都能看到

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

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

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

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

网络安全问题解决方法

  • 数据机密性问题解决方案

a) 利用普通加密算法解决机密性

利用相应算法,对传输数据(明文数据)进行加密(密文数据);再利用对应算法,将加密数据解密变为真实数据

优点:实现了数据机密传输,避免了明文传输数据的危险性。

缺点:利用加密算法,将明文改密文,如果第三方获得加密算法,即可将传输密文再次变为明文

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

对称加密算法就好比将普通算法的规则手册放入到了保险柜里,只有获取保险柜和保险柜钥匙才能获取《算法手册》

优点:密钥加密算法计算速度非常快;解决了普通加密算法的安全问题

缺点:加解密过程的安全性完全依赖于密钥,并且对称加密密钥是公开的,当通讯加密对象过多时,无法解决密钥管理问题。

  • 数据完整性问题解决方案

a) 利用单项加密算法(全网备份数据完整性)

单项加密算法的特征:

① 数据输入一样,特征码信息输出必然相同

② 雪崩效应,输入的微小改变,将造成输出的巨大改变

③ 定长输出,无论源数据多大,但结果都是一样的

④ 不可逆的,无法根据数据指纹,还原出原来的数据信息

根据数据生成特征码(数据指纹信息);接收数据方获取数据信息算出特征码,验证是否与发送过来的特征码一致

若特征码一致,表示数据完整性没被破坏;若特征码不一致,表示数据已被破坏,直接丢弃

扩展说明:

01:不同数据的特征码(数据指纹信息)是不可能一致的

单项加密算法特征

· 数据输入一样,特征码信息输出必然相同

· 雪崩效应,输入的微小改变,将造成输出的巨大改变

· 定长输出,无论源数据多大,但结果都是一样的

· 不可逆的,无法根据数据指纹,还原出原来的数据信息。

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

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

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

利用对称加密算法对数据加密的同时,也对特征码进行加密;

接收方拥有和发送方一样的密钥,才可以解密加密后的数据和特征码

而中间人加密的特征码是没有办法让接收方进行解密的,所以接收方获取不了特征码,直接丢弃数据

扩展说明:

01:那么对称密钥如何有效的让通讯双方获取呢

需要进行对称密钥协商过程,即通过密钥交换机制(Internet key exchange IKE)

实现密钥交换机制的协议称为diffie-hellman协议

diffie-hellman协议算法实现的过程:

a) 首先发送方选取一个大素数P(只能被1和自己整除的数),再选取一个生产数g,并且发送方P与g经过互联网传输到接收方

b) 数据传输的两端,发送方选择一个随机数x,接收方选取一个随即数y;发送方只知道随机数x,接收方只知道随机数y,x和y不在互联网上进行传输

c) 接收数据双方开始进行计算,对于发送方进行计算g的x次方对P取模的结果,传输给接收者,而接收方进行计算g的y次方对P取模的结果,传输给发送者。

d) 此时对于接收方获取到了发送方的g的x次方对P取模的结果,在取模结果的基础上进行y次方的运算,y就是接收方自身产生的随机数y;而对于发送方获取到了接收方的g的y次方对P取模的结果,在取模结果的基础上进行x的次方的运算,x就是发送方自身产生的随机数x。此次,双方的加密运算密钥就实现了交换,并且是统一一致的,最终的密钥为g的xy次方对P取模的结果

https网站安全访问服务

https网站安全访问服务

https网站安全访问服务

  • 身份验证问题解决方案

利用非对称密钥加密算法(公钥加密算法)

发送方建立私钥和公钥,将公钥发送给接收方,从而实现发送数据方的身份验证

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

1. 解决身份验证问题

2. 解决数据完整性问题

3. 解决数据机密性问题

  • 网络安全证书由来

根据上述结论可知,网络安全性最首先要解决的就是身份验证问题;

而解决身份验证问题,最主要的方式就是借助私钥和公钥

而最主要的公钥信息获取就变得尤为重要;利用第三方公正者,公正公钥信息

证书信息所包含什么内容

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

① 公钥信息,以及证书过期时间

② 证书的合法拥有人信息

③ 证书该如何被使用

④ CA颁发机构信息

⑤ CA签名的校验码

互联网上使用的ssl和TLS证书管理机制均使用X509的格式

  • OpenSSL软件详细说明

Netscape网景公司生产了最初的浏览器,但为了提高浏览器访问页面的安全性,对TCP/IP模型进行了一定改进,在传输层与应用层之间,创建了一个3.5层的概念,称为SSL(Sesure Sockets Layer安全套接层)层,SSL不是一个软件,只是一个库,让应用层将数据传输到传输层前,调用了ssl层的功能对数据进行了加密,目前比较流行的版本是(SSlv2、v3),但是SSL是netscape公司进行定义的,不够开放性,因此为了使加密功能更加开放,TSL(传输层安全协议)就出现了,目前比较流行的版本是(TSlv1==ssl v3),TSL更像是传输层上实现的数据加密

获取OpenSSL软件的版本信息:

#openssl version <- 查看openssl版本信息

获取OpenSSL配置文件信息:

#/etc/pki/tls/openssl.cnf <- openssl配置文件,主要用于配置成私有ca时进行使用

https网站安全访问服务

#举例说明,加密一个文件

# openssl enc -des3 -salt -a -in inittab -out initab.des3 <- 输入密码后即加密成功

# openssl enc -des3 -d -salt -a -in initab.des3 -out inittab <- 输入密钥后即解密成功

说明:其中命令中的salt参数,主要用于避免密码加密后,对密钥串的反推

#生成和用户一样的密码串

openssl passwd -1 <- 采用md5加密用户密码串,将明文密码转换为密文

#生成伪随机数方法

openssl rand -base64 45 <- 给出一个任意的数字,就会生成任意的随机数

OpenSSL软件建立私有CA(证书颁发机构)

  • 生成私钥文件信息方法

openssl genrsa 2048 >server.key <- 创建私钥信息,并指定私钥的长度为2048,并将生成的私钥信息保存在一个文件中

openssl genrsa -out server.key 2048 <- 将私钥信息直接进行保存,加密长度一定要放在输出文件后面

(umask 077;openssl genrsa -out server1024.key 1024) <- 利用小括号,实现子shell功能, 临时修改umask,使之创建的私钥文件权限为600

  • 生成自签署的证书
https网站安全访问服务

[root@NFS-server-01 ~]# openssl req -new -x509 -key server1024.key -out server.crt -days 365

req <- 用于创建新的证书

new <- 表示创建的是新的证书

x509 <- 表示定义证书的格式为标准格式

key <- 表示调用的私钥文件信息

out <- 表示输出证书文件信息

days <- 表示证书的有效期

You are about to be asked to enter information that will be incorporated

into 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 blank

For some fields there will be a default value,

If you enter ‘.’, the field will be left blank.

https网站安全访问服务

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]:xxx公司 <- 定义生成证书的组织

Organizational Unit Name (eg, section) []:it <- 定义生成证书的职能部门

Common Name (eg, your name or your server’s hostname) []:xxx.com.cn <- 定义主机服务器名称

说明:此输出信息非常重要,客户端在获取证书前,会利用主机名与相应服务器之间建立连接,然后获得证书

Email Address []:

#openssl x509 -text -in server.crt <- 用于查看证书中的信息

# CA自签发证书实际创建过程

cd /etc/pki/CA/private/ <- 进入到私钥保存目录中

(umask 077;openssl genrsa -out ./cakey.pem 2048) <- 创建一个ca私钥文件

cd /etc/pki/CA <- 进入到CA自签发保存目录中

openssl req -new -x509 -key private/cakey.pem -out cacert.pem <- 生成自签发证书

说明:由于下面配置文件中定义了一些证书信息,所以默认输入即可

  • 利用证书实现HTTPS访问Nginx服务

①安装opessl软件

# yum install openssl

# yum install openssl-devel

② 进行证书目录规划

# cd /application/nginx/conf/ <- 编译安装Nginx的程序目录

# mkdir key

# cd key/

③ 创建私钥文件

创建服务器私钥,命令会让你输入一个口令: 这里输入的是keke811888

# openssl genrsa -des3 -out server.key 1024

Generating RSA private key, 1024 bit long modulus

………………….++++++

……………….++++++

e is 65537 (0x10001)

Enter pass phrase for server.key:

Verifying – Enter pass phrase for server.key:

④ 创建请求证书

创建签名请求的证书(CSR):

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

扩展说明:去掉私钥文件口令密码信息

cp server.key server.key.org

openssl rsa -in server.key.org -out server.key <- 生成无口令的私钥

⑤ 配置Nginx服务使之支持证书访问

修改Nginx配置文件,让其包含新标记的证书和私钥:

server {

server_name YOUR_DOMAINNAME_HERE;

listen 443;

ssl on;

ssl_certificate /application/nginx/conf/key/server.crt;

ssl_certificate_key /application/nginx/conf/key/server.key;

}

单台web服务器实现http访问自动跳转到https

  • 方法1:利用地址重写功能

server {

listen 80;

server_name www.etiantian.org;

rewrite ^(.*)$ https://$host$1 permanent;

}

说明:在https配置server基础上再添加http跳转ser

  • 方法2: 利用error_page识别错误码信息进行跳转

server {

listen 443;

listen 80;

server_name www.etiantian.org;

ssl on;

ssl_certificate /application/nginx/conf/key/server.crt;

ssl_certificate_key /application/nginx/conf/key/server.key;

location / {

root html/www;

index index.html index.htm;

}

error_page 497 https://$host$uri;

}

说明:497为内置错误码,当访问http无法处理,需要利用https处理

  • 利用反向代理服务器进行http到https跳转

第一步:修改地址池信息

upstream www_server_pools {

server 10.0.0.7:443;

server 10.0.0.8:443;

server 10.0.0.9:443;

}

第二步:修改地址池调用信息

server {

listen 443;

server_name www.etiantian.org;

ssl on;

ssl_certificate /application/nginx/conf/key/server.crt;

ssl_certificate_key /application/nginx/conf/key/server.key;

location / {

proxy_pass https://www_server_pools;

}

}

第三步:定义http到https跳转配置信息

server {

listen 80;

server_name www.etiantian.org;

rewrite ^(.*)$ https://$host$1 permanent;

}

本次完,谢谢大家支持——ke.ke

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/51171.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信