We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密、验证、解密的,如下面流程图所示:
1、客户端发起HTTPS请求 2、服务端的配置 采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。这套证书其实就是一对公钥和私钥。
自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。
3、传送证书 服务器向客户端传送证书(公钥),包含了很多信息,如证书的颁发机构、过期时间等。 4、客户端解析证书 客户端获取证书和公钥,验证证书是否有效,比如颁发机构、过期时间等,如果验证不通过,则会弹出一个警告框,提示证书验证存在问题。如果证书没有问题,生成一个随机值(密钥),然后用公钥对随机值进行加密,生成加密后的密钥。 5、传送加密信息 客户端将加密后的密钥传送给服务端,以后客户端和服务端的通信就通过这把密钥。 6、服务器解密信息 服务端使用私钥解密,拿出客户端生成的随机值(密钥),然后把内容通过该值进行对称加密。
对称加密:将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都共享同一把私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
7、传送加密后的信息 服务端传送加密后的信息给客户端。 8、客户端解密信息 客户端使用之前生成的密钥解密服务端传来的信息,获取解密后的内容。
参考:https://juejin.im/post/5c441073e51d455226654d60#heading-12
The text was updated successfully, but these errors were encountered:
No branches or pull requests
HTTPS简介
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密、验证、解密的,如下面流程图所示:
![image](https://user-images.githubusercontent.com/13798469/158519174-7061cc98-949a-40c2-998f-de294b20915b.png)
1、客户端发起HTTPS请求
2、服务端的配置
采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。这套证书其实就是一对公钥和私钥。
3、传送证书
服务器向客户端传送证书(公钥),包含了很多信息,如证书的颁发机构、过期时间等。
4、客户端解析证书
客户端获取证书和公钥,验证证书是否有效,比如颁发机构、过期时间等,如果验证不通过,则会弹出一个警告框,提示证书验证存在问题。如果证书没有问题,生成一个随机值(密钥),然后用公钥对随机值进行加密,生成加密后的密钥。
5、传送加密信息
客户端将加密后的密钥传送给服务端,以后客户端和服务端的通信就通过这把密钥。
6、服务器解密信息
服务端使用私钥解密,拿出客户端生成的随机值(密钥),然后把内容通过该值进行对称加密。
7、传送加密后的信息
服务端传送加密后的信息给客户端。
8、客户端解密信息
客户端使用之前生成的密钥解密服务端传来的信息,获取解密后的内容。
参考:https://juejin.im/post/5c441073e51d455226654d60#heading-12
The text was updated successfully, but these errors were encountered: