Linux https认证原理

HTTPS在传输的过程中会涉及到三个密钥:
服务器端的公钥和私钥,用来进行非对称加密
客户端生成的随机密钥,用来进行对称加密
一个HTTPS请求实际上包含了两次HTTP传输,可以细分为8步。
1.客户端向服务器发起HTTPS请求,连接到服务器的443端口
2.服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。
3.服务器将自己的公钥发送给客户端。
4.客户端收到服务器端的公钥之后,会对公钥进行检查,验证其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续。严格的说,这里应该是验证服务器发送的数字证书的合法性,关于客户端如何验证数字证书的合法性,下文会进行说明。如果公钥合格,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,我们将该密钥称之为client key,即客户端密钥,这样在概念上和服务器端的密钥容易进行区分。然后用服务器的公钥对客户端密钥进行非对称加密,这样客户端密钥就变成密文了,至此,HTTPS中的第一次HTTP请求结束。
5.客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。
6.服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文。
7.然后服务器将加密后的密文发送给客户端。
8.客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。

两种文件:
1、证书(包括公钥),PEM格式,一般后缀名:crt、cer、pem、ca
2、私钥,PEM格式,一般后缀名:key

证书格式一般是PEM和DER,PEM是文本文件,DER是二进制编码证书

原文地址:https://www.cnblogs.com/Presley-lpc/p/11445330.html

时间: 2024-10-10 02:56:07

Linux https认证原理的相关文章

Linux下Apache https认证

参考:http://kyfxbl.iteye.com/blog/1910891 http://showerlee.blog.51cto.com/2047005/1266712 一.环境 httpd:Apache2.4.10 openssl:1.0.1 OS:CentOS5.7 四.在httpd中配置单向HTTPS 1.编辑 httpd.conf,分别查找下面2行代码,并去掉前面的#,(这里的前提是,在编译httpd的时候,已经编译了ssl模块) vim /usr/local/apache/con

ssh公钥认证原理及设置root外的其他用户登录ssh

1)创建其他用户 useradd [-d 登录目录] [-G ssh][用户名] 一定要将用户添加到ssh组不然无法没有权限登录ssh 2)设置ssh不允许root登录 vi /etc/ssh/sshd_config 找到 PermitRootLogin yes 修改为PermitRootLogin no 并在尾部添加 AllowUsers  [用户名列表] 然后重启ssh服务,/etc/init.d/ssh restart 3)如何使用公钥认证 先解释下什么是公钥密钥: 公钥私钥是不对称加密方

https/ssl原理

在此总结下https协议原理. http问题 1)明文传输数据,被抓包后很容易可以看出传输内容,传输敏感数据有安全问题. 2)不能保证进行http通信的客户端与服务器是合法的. 为了解决这两个问题,需要对http数据进行加密和对通信双方进行认证.https就是在http协议的下层加了一个ssl协议,通过ssl实现了上述加密和认证的功能. https协议原理 通常,http直接和tcp通信.而https协议,则是http和ssl通信,ssl和tcp通信,加解密的功能在ssl层实现.ssl是独立于h

CA证书申请、认证原理

(一) 证书的申请 密钥文件的格式用OpenSSL生成的就只有PEM和DER两种格式,PEM的是将密钥用base64编码表示出来的,直接打开你能看到一串的英文字母,DER格式是二进制的密钥文件,直接打开,你可以看到........你什么也看不懂!.X509是通用的证书文件格式定义.pkcs的一系列标准是指定的存放密钥的文件标准,你只要知道PEM DER X509 PKCS这几种格式是可以互相转化的. 1.创建私钥 : openssl genrsa -out ca/ca-key.pem 1024

Java网络编程和NIO详解6:Linux epoll实现原理详解

Java网络编程和NIO详解6:Linux epoll实现原理详解 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NIO https://blog.csdn.net/column/details/21963.html 部分代码会放在我的的Github:https://github.com/h2pl/ Linux epoll实现原理详解 在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者pol

[转帖]linux下的X server:linux图形界面原理

linux下的X server:linux图形界面原理 https://www.cnblogs.com/liangxiaofeng/p/5034912.html linux下的X server:linux图形界面原理 Moblin Core是在Gnome Mobile的平台上建立.我以前玩Linux,提交的都和图像没有关系,连Xwindows都不用启动,开机后直接进入文本命令行,所以这方面了解得很少,需要学习一下. 严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用L

HTTPS加密原理与过程

HTTPS加密原理与过程 HTTP 超文本传输协议一种属于应用层的协议 缺点: 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,因此有可能遭遇伪装 无法证明报文的完整性,所以有可能已遭篡改 优点: 传输速度快 HTTPS HTTPS 并非是应用层的一种新协议.只是 HTTP 通信接口部分用 SSL (安全套接字层)和TLS (安全传输层协议)代替而已.即添加了加密及认证机制的 HTTP 称为 HTTPS ( HTTP Secure ). HTTP + 加密 + 认证 + 完整性保护

SSH认证原理和批量分发管理

SSH密码认证原理 几点说明: 1.服务端/etc/ssh目录下有三对公钥私钥: [[email protected] ssh]# ls moduli ssh_config sshd_config ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_key ssh_host_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub 其中,ssh_host_key和ssh_host_key.pub 用于ssh协议1版本:其

Kerberos认证原理简介

1.1 What is Kerberos 1.1.1 简单介绍 Kerberos是一个用于鉴定身份(authentication)的协议, 它采取对称密钥加密(symmetric-key cryptography),这意味着密钥不会在网络上传输.在Kerberos中,未加密的密码(unencrypted password)不会在网络上传输,因此攻击者无法通过嗅探网络来偷取用户的密码. Kerberos利用对称加密和受信任的第三方(即KDC, key distribution center)来鉴别