数字证书
由上面的讨论可以知道,数字证书在ssl传输过程中扮演身份认证和密钥分发的功能。究竟什么是数字证书呢?
简而言之数字证书是一种网络上证明持有者身份的文件,同时还包含有公钥。一方面,既然是文件那么就有可能“伪造”,因此,证书的真伪就需要一个验证方式;另一方面,验证方需要认同这种验证方式。
对于第一个需求,目前的解决方案是,证书可以由国际上公认的证书机构颁发,这些机构是公认的信任机构,一些验证证书的客户端应用程序:比如浏览器,邮件客户端等,对于这些机构颁发的证书完全信任。当然想要请这些机构颁发证书可是要付“到了斯”的,通常在windows部署系统的时候会让客户端安装我们自己服务器的根证书,这样客户端同样可以信任我们的证书。
对于第二个需求,客户端程序通常通过维护一个“根受信任机构列表”,当收到一个证书时,查看这个证书是否是该列表中的机构颁发的,如果是则这个证书是可信任的,否则就不信任。
证书的信任
因此作为一个https的站点需要与一个证书绑定,无论如何,证书总是需要一个机构颁发的,这个机构可以是国际公认的证书机构,也可以是任何一台安装有证书服务的计算机。客户端是否能够信任这个站点的证书,首先取决于客户端程序是否导入了证书颁发者的根证书。下图说明了这个流程:
有时一个证书机构可能授权另一个证书机构颁发证书,这样就出现了证书链。
IE浏览器在验证证书的时候主要从下面三个方面考察,只要有任何一个不满足都将给出警告
1、证书的颁发者是否在“根受信任的证书颁发机构列表”中
2、证书是否过期
3、证书的持有者是否和访问的网站一致
另外,浏览器还会定期查看证书颁发者公布的“证书吊销列表”,如果某个证书虽然符合上述条件,但是被它的颁发者在“证书吊销列表”中列出,那么也将给出警告。每个证书的CRL
Distribution
Point字段显示了查看这个列表的url。尽管如此,windows对于这个列表是“不敏感”的,也就是说windows的api会缓存这个列表,直到设置的缓存过期才会再从CRL
Distribution
Point中下载新的列表。目前,只能通过在证书颁发服务端尽量小的设置这个有效期(最小1天),来尽量使windows的客户端“敏感”些。具体设置方法为(winserver2003):
进入管理员工具->证书机构->右击某个证书服务下的“吊销的证书”目录->属性:
按图中的设置,将CRL发布周期改为1天。
IIS中部署基于数字证书的https网站
在IIS6中构建一个https网站需要如下几个关键步骤:
安装CA认证服务:此步骤不是必要的。如果网络中还没有那台主机安装过CA认证服务,或者确实需要建个新的CA认证服务,那么就需要在某台主机上安装CA认证服务。这是windows自带的功能,默认不安装。如果装了,就意味这这台主机具有颁发证书的能力,只要安装有这台主机的根证书的客户端会信任这台主机颁发的证书。在windows
server 2003中的安装步骤,详见http://jeffyyko.blog.51cto.com/28563/140518
向CA认证服务提交证书申请,并将获得的证书跟网站绑定:详见http://jeffyyko.blog.51cto.com/28563/141322
要求客户端导入根证书,以使客户端信任该证书:详见http://jeffyyko.blog.51cto.com/28563/142280
分享到:
相关推荐
关于生成SSL数字证书的总结 在本文中,我们将详细介绍如何生成SSL数字证书,并在Tomcat服务器上配置SSL数字证书。同时,我们还将总结一些常见的问题和解决方法。 一、生成SSL数字证书 为了生成SSL数字证书,我们...
《HTTPS/SSL证书详解》 在互联网世界中,数据安全是至关重要的,HTTPS(Hyper Text Transfer Protocol Secure)和SSL(Secure Socket Layer)证书是保障网络安全的重要工具。它们为用户提供了一个安全的环境,使得...
C# SSL服务端连接及安装数字证书
使用HttpClient4.5实现https请求忽略SSL证书验证工具类
SSL(Secure Socket Layer)证书是一种数字证书,主要用于加密互联网通信,确保数据在传输过程中的完整性与机密性。它通过创建一个安全的加密连接,防止中间人攻击、数据篡改和身份伪造。当浏览器与服务器之间建立...
本地数字签名证书SSL是网络安全领域中的一个重要概念,用于在互联网上建立安全的通信环境,特别是对于涉及敏感数据传输的应用如在线购物、网银服务等。SSL(Secure Socket Layer)是安全套接层的缩写,它通过加密...
2. 生成本地SSL证书的工具: - OpenSSL:这是一款开源的SSL/TLS工具包,可以用来生成各种类型的证书,包括自签名证书。它是生成本地SSL证书最常用的工具。 - Windows的MakeCert:这是一个Windows内置工具,用于...
这是一款二次元风格向的SSL证书自签工具源码,可随时随地签发SSL证书 运行环境: 你的 PHP 必须 >=5.6,且安装了 OpenSSL 扩展 所有文件都已本地化,大部分PHP默认开启OpenSSL 安装: 下载源码导入网站目录访问...
SSL(Secure Sockets Layer)和数字证书是网络安全领域的重要组成部分,它们主要用于确保网络通信的安全性。SSL最初由Netscape公司在1994年开发,主要用于浏览器与服务器之间的数据加密,提供加密、身份验证和数据...
2. 服务器发送 SSL 证书 3. 客户端验证 SSL 证书 4. 客户端生成随机数 5. 客户端和服务器建立加密连接 六、证书各部分的含义 数字证书主要包括以下几个部分: 1. 颁发者信息 2. 证书持有者信息 3. 公钥信息 4. ...
数字证书简介、SSL协议原理、数据安全传输是互联网安全领域的核心知识点。数字证书为互联网上的通信双方提供了身份验证机制,确保双方身份的真实性,防止数据在传输过程中被窃听、篡改和抵赖。SSL协议是当前广泛使用...
本文将详细介绍如何在Nginx服务器上配置SSL自签名证书。 首先,我们需要生成自签名SSL证书。这通常包括以下步骤: 1. **生成RSA密钥**:使用`openssl genrsa`命令创建一个带有密码保护的RSA私钥。例如,`openssl ...
2. 下载证书:证书签发后,从证书颁发机构下载PEM或DER格式的SSL证书文件。 四、导入SSL证书到Windows Server 2003 1. 打开“Internet信息服务(IIS)管理器”:通过控制面板或运行命令`inetmgr`来访问。 2. 选择...
SSL通过使用加密算法、数字证书和握手协议来实现这些功能。 数字证书是SSL协议中的核心组件,它是一种电子凭证,用于证明网络实体(如个人、服务器或组织)的身份。证书包含公钥、身份信息、签发者信息、有效期以及...
SSL证书生成软件、包括转换证书格式
当客户端(如Android应用)与服务器建立HTTPS连接时,服务器会发送其SSL证书,客户端会验证这个证书的有效性。 在Android中,SSL证书验证主要涉及到以下几个方面: 1. **默认的信任管理器**:Android系统内置了一...
本篇将详细介绍如何在Nginx上配置HTTPS,使用SSL私钥证书来确保数据传输的安全。 首先,了解SSL(Secure Sockets Layer)及其升级版TLS(Transport Layer Security)是网络安全的基础。它们通过加密传输,防止数据...
java信任SSL证书的工具类 忽略HTTPS请求的SSL证书,必须在openConnection之前调用
SSL(Secure Sockets Layer)证书是基于公钥基础设施(PKI)的一种数字证书,由受信任的证书颁发机构(CA)验证网站身份后签发。它包含网站所有者的身份信息,并通过公钥和私钥对进行加密,保障用户在浏览网站时的...