当前位置:首页 » 资讯中心 » 周边资讯 » 正文

HTTPS双向认证过程:从请求到验证的全方位解读

HTTPS双向认证过程:从请求到验证的全方位解读

一、引言

随着互联网技术的不断发展,网络安全问题日益受到人们的关注。

HTTPS作为一种安全的超文本传输协议,通过加密技术保护数据在传输过程中的安全。

其中,双向认证是HTTPS安全传输的重要组成部分,它确保了通信双方的身份真实可靠。

本文将详细介绍HTTPS双向认证过程,从请求到验证的每一个环节。

二、HTTPS概述

HTTPS(Hypertext Transfer Protocol Secure)是一种通过计算机网络进行安全通信的协议。

它在HTTP下加入了SSL/TLS协议,对传输数据进行加密,确保数据在传输过程中的安全。

HTTPS服务一般需要申请证书,以证明服务器的身份。

三、HTTPS双向认证过程

HTTPS双向认证过程包括客户端认证和服务器认证。

下面我们将从请求到验证的每一个环节进行详细解读。

1. 客户端请求

客户端向服务器发送请求,要求建立安全的通信连接。

此时,客户端会检查服务器的证书,以验证服务器的身份。

如果服务器证书无效或过期,客户端将拒绝连接。

2. 服务器响应

服务器接收到客户端的请求后,会向客户端发送自己的证书。

证书中包含了服务器的公钥、证书颁发机构等信息。

通过这种方式,服务器向客户端证明自己的身份。

3. 客户端验证服务器证书

客户端接收到服务器证书后,会验证证书的有效性。

客户端会检查证书是否由可信的证书颁发机构签发。

客户端会检查证书中的信息是否与服务器的主机名匹配。

客户端会检查证书的有效期,确保证书未过期。

如果证书验证通过,客户端将继续建立通信连接。

4. 客户端发送公钥

在验证完服务器证书后,客户端会生成一个随机的对称密钥,并使用服务器的公钥进行加密,然后将加密后的密钥发送给服务器。

这样做是为了确保只有双方能够解密该密钥,从而保证通信的安全性。

5. 服务器验证客户端证书(可选)

在某些情况下,服务器可能需要对客户端进行身份验证。

这时,服务器会要求客户端发送自己的证书。

客户端将自己的证书发送给服务器后,服务器会验证客户端证书的有效性,以确保客户端的身份可靠。

6. 双方建立安全通信

经过上述步骤,客户端和服务器已经完成了双向认证。

双方确认彼此的身份后,将使用之前协商好的对称密钥进行加密通信,确保数据在传输过程中的安全。

四、HTTPS双向认证的优势

1. 保证通信双方的身份真实可靠:通过双向认证,通信双方可以确认彼此的身份,避免通信过程中的身份伪造和攻击。

2. 提高数据传输的安全性:双向认证结合加密技术,确保数据在传输过程中的安全,防止数据被窃取或篡改。

3. 提高系统的可信度:通过验证通信双方的身份,可以提高系统整体的可信度,增强用户对该系统的信任度。

五、结论

HTTPS双向认证过程是实现安全通信的关键环节。

通过客户端和服务器之间的相互验证,确保通信双方的身份真实可靠,提高数据传输的安全性。

在实际应用中,我们应重视HTTPS双向认证的重要性,确保网络传输的安全。


如何配置 Notes 客户端通过双向认证访问 Web 站点

双向认证的概述传统的单项认证可以让客户端对于服务器的身份进行鉴别,一旦认证通过用户就可以通过用户名和密码这种表单或其他认证形式通过服务器端的认证。

如果用户的登录账户信息被泄露了,那么服务器端对此便无能为力了。

但是,如果 Web 站点的管理员启用了双向认证那么除了用户表单,客户端还需向服务器端提供用户的客户端证书,从而使得用户的个人信息和资源得到更好的保护。

免费下载:IBM Notes 客户端下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

从技术的层面上来讲,双向认证就是指服务器和客户端在没有用户干预的情况下分别对彼此的身份进行认证。

双向 SSL 会强制要求用户提供客户端证书,服务器会通过数字签名对用户的信息的真实性进行验证。

不过,由于双向认证的复杂性、花费和有效性等问题,目前大部分 Web 应用并没有采用这种认证方式,强制要求用户提供客户端证书。

在 Windows 2008 server 上添加标准 CA 角色接下来让我们以 Windows 2008 R2 Server 为例具体介绍如何在服务器端开启 SSL 和双向认证方式。

1. 准备一台装有 Windows 2008 2 系统的服务器,可以安装在物理机上也可以是虚拟机。

进入系统后右键点击我的电脑->管理,进入服务器管理器。

选中“角色”栏,在右侧面板选择添加角色。

图 1. 服务器管理器页面图 1. 服务器管理器页面2. 在添加角色向导中选择“下一步”。

3. 选择“Active Directory 证书服务”和“Web 服务器(IIS)”,点击下一步。

在这里为了简便,我们将申请证书所需的 CA 和提供 Web 服务的 IIS 安装在了一台 Windows 2008 上。

4. 忽略 Active Directory 证书服务简介,直接点击下一步。

5. 在“选择角色服务”中会默认选择“证书颁发机构”,在这里我们手动将“证书颁发机构 Web 注册”添加进来,在添加时会根据所需服务的依赖情况建议同时安装某些服务和角色,我们选择“添加所需的角色服务”,点击下一步。

图 2. 添加所需的角色服务页面图 2. 添加所需的角色服务页面6. 保持“指定安装类型”的默认选项–独立,点击下一步。

7. 在“指定 CA 类型”页,选择“根 CA”选项。

8. 在“设备私钥”页,选择“新建私钥”,点击下一步。

9. 在“为 CA 配置加密”页,选择默认值。

10. 在“配置 CA 名称”页,根据具体情况键入 CA 的公用名称,点击下一步。

11. 在“设置有效期”页,根据自身情况设置 CA 生成证书的有效期,点击下一步。

12. 在“配置证书数据库”页保持默认值,点击下一步。

13. 在“Web 服务器(IIS)”页,点击下一步。

14. 在“选择角色服务”页,保持默认选项,点击下一步。

15. 在“确认安装选择”页,确认安装选项准确无误并点击安装。

16. 在“安装结果”页,查看安装结果成功后点击关闭。

图 3. 安装结果页面图 3. 安装结果页面至此,AD 证书服务和 IIS Web 服务就安装完毕了,重启服务器以确保新安装的服务能够生效。

配置 IIS Web 站点使用 SSL待服务器重启完毕后,通过浏览器访问 IIS Web 站点,确保 HTTP 服务已经启动。

在开启 SSL 时,网站的管理员可以通过 IIS 本身的服务器证书功能快速创建服务器端自签名证书,具体步骤如下:1. 从开始->所有程序->管理工具,选中 Internet 信息服务(IIS)管理器。

图 4. 管理工具页面图 4. 管理工具页面2. 在树状控制面板中选中带有计算机名称的根节点,在右侧主面板中双击“服务器证书”。

图 5. 服务器证书页面图 5. 服务器证书页面3. 点击创建自签名证书链接。

图 6. 创建自签名证书图 6. 创建自签名证书4. 为证书添加证书名称。

5.确认自签名证书添加成功。

6. 在左侧连接面板选中默认站点节点,然后在右侧操作栏中选择“绑定”链接。

7. 在网站绑定框中点击“添加”按钮。

图 7. 网站绑定页面图 7. 网站绑定页面8. 从“类型”中选择 https,在 SSL 证书中选择在第四步中创建的自签名证书,点击确定。

图 8. 添加网站绑定页面图 8. 添加网站绑定页面9. 打开 Web 浏览器,输入 h/主机名,访问测试站点 SSL 是否开启。

如果看到如下图,证明 SSL 已经开启成功。

图 9. 测试站点页面图 9. 测试站点页面向 CA 申请带有私钥的个人证书打开 Web 浏览器,输入测试网站的证书申请网址,如:/测试服务器域名/certsrv/。

待下面网页加载后点击其中的“申请证书”。

图 10. 测试网站证书申请网址页面图 10. 测试网站证书申请网址页面选择“高级证书申请”链接。

图 11. 选择证书类型页面图 11. 选择证书类型页面选择创建并向此 CA 提交一个申请链接。

在高级证书申请中填写相关信息并在证书类型中选择“客户端认证证书”。

图 12. 高级证书申请填写页面一图 12. 高级证书申请填写页面一注意:一定要在密钥选项中选择“标记密钥为可导出”单选框,其他值保持默认即可。

请教一个 C#https双向认证的例子

https双向认证与具体的语言无关吧?https其实是http+ssl,这种情下可以起到一个单向认证的做用,浏览器获得服务器返回的签名,然后将其签名送到CA,CA可认证浏览器所读到的是正经网站还是假冒的网站。

当然服务器证书过期或不能与根证书(浏览安全区证书)形成证书链时,就会出现危险标识,提示你是否继续访问。

这种就是典型的https的作用。

如果双向认证,则需要浏览器也上传签名(服务器可要求客户端必须使用签名),同样服务器也执行了相同的认证流程,这就是典型的双向认证。

一般情况下,如果客户端的证书是由服务端建立CA颁发的情况下,可以直接从证书中读取信息,而这个信息包括公司对的不可列新的信息,此时情况下,浏览器不需要也没有必须再设计类型的登陆按钮之类(如果证书颁发给操作员的话,但如果证书颁给对方机构,存在多个操作员使用同一证书情况下,设计登陆界面以区别不同的操作员)。

这个与http,ssl和tls相关,与具体的实现语言无关。

客户端怎么使用httpclient向https服务器发送数据

客户端向服务器发送数据时,份两种情况,SSL单向验证和SSL双向验证单向验证时代码如下:Java代码import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;public class ClientSendData {static Log log = ();private String Url;// 初始化数据public ClientSendData() {Url =}public String sendData(Stringerror url= + url, e);} finally {if (postMethod != null) {();}}return result;}public static void main(String[] args) {ClientSendData t = new ClientSendData();(测试SSL单项连接,向服务端发送数据!);}}可能出现的异常: Connection refused: connect服务器没有启动2 : : PKIX path building failed服务端的证书是不可信的。

解决办法见这篇文章Software caused connection abort: recv failed这是由于服务端配置的是SSL双向认证,而客户端发送数据是按照服务器是单向认证时发送的,即没有将客户端证书信息一起发送给服务端。

这一般是服务端防火墙的原因。

拦截了客户端请求。

另外,当服务端负载过重时,也会出现此问题。

: Remote host closed connection during handshake这是由于服务端配置的是SSL双向认证,而客户端发送数据是按照服务器是单向认证时发送的,即没有将客户端证书信息一起发送给服务端。

服务端验证客户端证书时,发现客户端没有证书,然后就断开了握手连接。

双向验证时双向验证时,暂时不知道如何用HTTPCLIENT发送数据,如需要双向验证时发送数据,参考我另外的文章。

另外,有知道HTTPCLIENT如何在双向验证时发送数据的,恳请指教。

未经允许不得转载:虎跃云 » HTTPS双向认证过程:从请求到验证的全方位解读
分享到
0
上一篇
下一篇

相关推荐

联系我们

huhuidc

复制已复制
262730666复制已复制
13943842618复制已复制
262730666@qq.com复制已复制
0438-7280666复制已复制
微信公众号
huyueidc_com复制已复制
关注官方微信,了解最新资讯
客服微信
huhuidc复制已复制
商务号,添加请说明来意
contact-img
客服QQ
262730666复制已复制
商务号,添加请说明来意
在线咨询
13943842618复制已复制
工作时间:8:30-12:00;13:30-18:00
客服邮箱
服务热线
0438-7280666复制已复制
24小时服务热线