首页 > 编程知识 正文

ssl https(SSL原理)

时间:2023-05-04 16:54:01 阅读:124090 作者:1729

在HTTPS SSL问题描述小程序中,网络请求,如果需要,https

spring boot部署ssl证书知识点远古

不加密

古代时代

发生了中间人攻击,出现了加密。 双方用同一密钥加密,并使用对称加密算法

密钥确定不能通过网络。 如果不使用需要线下商定,可能会被拦截。

密钥有可能被暴力破解,密钥长度会变长

数据加密标准(des ) 56位

三线制des 168

AES 256

现代不对称加密

最有名的算法: RSA算法

公共密钥:用于加密

私有密钥:用于解密

具体过程

a有公共密钥、私有密钥

b有公共密钥,私有密钥

隐私保留在本地,公共密钥发送给对方

a向b发送数据

1、使用私有密钥加密数据的哈希值

2、a用b的公共密钥加密数据。

3、a将加密哈希值和加密数据添加一些其它信息,并传送给b

4、b接收后,用private key解密数据,执行得到混列值

5、用a的公共密钥解密哈希值

6、比较混列值,验证数据完整性

非堆成加密仍然存在隐患

中介拦截双方的公共密钥,交换为自己的公共密钥,在中间解密、加密

为了防止公共密钥被拦截,请访问线下传送public key

CA (Certificate Authority)

不用线下见面传送public key

流程:

1、b把自己的公共密钥(和一些其他信息)交给CA

2、CA将这些信息用自己的private密钥加密,并使用数字证书

3、目前b发送给a的public key 变为:B发送给a的数字证书

4、a收到后,使用CA发布的CA证书(包含CA的public key),解密b的数字证书,得到b的公共密钥

CA的安全性

如果CA证书被劫持,换成攻击者自己伪造的CA证书,也有可能被劫持

然而,CA证书嵌入在浏览器和操作系统中,不是通过网络获取的。

中介可以拦截a和b数字证书,也可以使用CA证书获取a和b公共密钥,但中介不能伪造可以通过CA认证的数字证书

实际使用1、不对称加密复杂,处理速度慢,对所有消息使用不对称加密效率不高

2、因此,非对称加密只是用于传递一条消息,是用于对称加密的密钥

3、对称加密密钥确定后,a、b仍可通过对称加密进行网络通信。

因此,在现代,在a和b之间进行安全放心的网络通信,需要经过以下几个步骤

用CA体系交换public key通过非对称加密算法,交换用于对称加密的密钥通过对称加密算法,加密普通网络通信基本上是SSL/TLS的工作过程。

系统密钥对称密钥

非对称密钥

密钥库1,密钥库

2、包括密钥和数字证书

3、密钥库中有密码

ssl properties.yaml

server :端口: 8443 #指定端口SSL : key-store : class path : tql.zone.jks #指定密钥库key-store-password 3360 wuxiaord

package com.example.smart text.config; importorg.Apache.catalina.context; importorg.Apache.catalina.connector.connector; importorg.Apache.Tomcat.util.descriptor.web.security collection; importorg.Apache.Tomcat.util.descriptor.web.security constraint; importorg.spring framework.boot.web.embedded.Tomcat.tomcatservletwebserverfactory; importorg.spring帧work.context.annotation.bean; importorg.spring framework.context.annotation.configuration; @ configurationpublicclasshttpsconfig {/* * * spring boot 2.0 * @ return */@ beanpublictomcatservletwebserverfactoryservletclet { tomcatservletwebserverfactorytomcat=newtomcatservletwebserverfactory { @ overrideprotectedvoidpostprocesscontext (连续文本(overrideprotectedvoidpostprontext constraint.setuser constraint () securitycollectioncollection=newsecuritycollection (; Collection.addpattern('/* '; constraint.addcollection; context.add constraint (constraint ); }; Tomcat.addadditionaltomcatconnectors (http连接器) ); 返回主题; } @ beanpublicconnectorhttpconnector () connector connector=new connector ) ' org.Apache.coyote.http 11.http 11 nioprotp 11 //Connector监听的http端口号connector.setport(8080; 连接器. set secure (false; 拦截http端口号后转发的https端口号connector.setredirectport(8443 ); 返回连接器; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。