很多网络工程师面对琐事之一是SSL证书的维护和更新。对于笔者而言,SSL证书主要是用于VPN部署,但也有很多网络设备需要证书来加密客户端到服务器的通信。每当笔者声称需要一个证书时,大家都会变得鸦雀无声,可能对于大多数人来说,证书有点恐怖。毕竟很多使用公钥加密技术的现有资源要么处于“保密”状态,要么使用对于实用主义来说过于抽象的原则。
本文的目的就是解决这方面的困惑,介绍SSL证书的基本知识和一些常见的现实例子。 SSL证书的基本知识 Web服务器和相关设备使用的常见证书主要由三部分组成: ? 主体私钥。这包含关于主体的独特的可识别信息,这通常是Web服务器,但也可能是个人用户。私钥通常在主机本身……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
很多网络工程师面对琐事之一是SSL证书的维护和更新。对于笔者而言,SSL证书主要是用于VPN部署,但也有很多网络设备需要证书来加密客户端到服务器的通信。每当笔者声称需要一个证书时,大家都会变得鸦雀无声,可能对于大多数人来说,证书有点恐怖。毕竟很多使用公钥加密技术的现有资源要么处于“保密”状态,要么使用对于实用主义来说过于抽象的原则。本文的目的就是解决这方面的困惑,介绍SSL证书的基本知识和一些常见的现实例子。
SSL证书的基本知识
Web服务器和相关设备使用的常见证书主要由三部分组成:
? 主体私钥。这包含关于主体的独特的可识别信息,这通常是Web服务器,但也可能是个人用户。私钥通常在主机本身上生成,理论上永远不会离开操作系统密钥存储区。在生成私钥时,也产生了一个证书签名请求。
? CA公钥:证书颁发机构(CA)是各方信任的一台服务器。现在有很多证书颁发机构提供证书服务,例如DigiCert或者VeriSign。此外,这可能是私人CA,例如微软Windows Server操作系统中的CA。如果在连接客户端(无论是Web浏览器还是操作系统本身)的证书库中存在其公钥的副本,则该CA被认为是可信的。
? 主体公钥。当CA对从私钥生成的CSR文件中的信息签名时,将会产生公钥。该公钥被设计为被透明地传输,并包含验证真实性和验证使用方法(例如服务器或客户端身份验证)的签名。
当我们的主体服务器接收到连接请求时,它将会出示其签名的公钥,以便客户端可以验证其身份。如果客户端信任我们的公钥,就会考虑加密,而公钥将被用于加密客户端的会话密钥。这个会话密钥只能由我们的私钥进行解密,并且可以完成其余安全套接字连接。
通配符证书
在创建私钥时,公用名(CN)将被指定,在大多数情况下,这是主机的完全合格域名(FQDN),例如www.foo.com。如果很多服务器需要保护,更经济且更实用的做法是对给定域的所有数据创建通配符证书(wildcard certificate)。当你在逻辑主机(例如负载均衡器)上需要多个虚拟身份(例如www.foo.com, mail.foo.com以及ssl.foo.com)时,这也是非常有用的。在密钥生成时,并不是为特定主机使用单个FQDN,而是主机部分被通配符取代,例如*.com。因此,该证书对于DNS域的所有事物都是有效的,但并不包括所有子域。大多数现代客户端浏览器支持通配符,但你可能会碰到少数例外,例如嵌入式浏览器或早期版本的IE浏览器。
主机备用名称
一个相对抽象但很有用的功能是主体备用名称(SAN)。如果你需要通配符证书的功能,而又需要来自传统客户端的连接,一些CA会使用一些有效的备用名称来签名主体公钥。即使是老旧的客户端SSL部署也支持这个功能,这允许主体公钥域这样替换名称:
? CN = *.foo.com
? SAN = www.foo.com, mail.foo.com, ssl.foo.com
即使客户端不明白主体通用名称中的通配符,它还是会匹配一个备用名称并接受该证书的有效性。
中间CA
绝大多数客户端证书不是由根级CA发出,而是由中间证书颁发机构(intermedia CA)发出。从本质上讲,根级CA对中间CA的公钥进行签名,允许其代替它签名证书。这种授权签名可能会发生几次,你最后得到的证书可能经历了几层证书机构。在下面的例子中,主体的证书“www.amazon.co.uk”由VeriSign Class 3 Secure Server CA-G2签名,而这又是由VeriSign根证书来签名的。
常见的中间级证书被嵌入在客户端证书存储区,但很多来自互联网服务提供商或域名注册商的合法中间证书并不是这样。中间证书需要被连接到Web服务器,这样客户端就可以循着证书链直到找到由可信CA签名的证书。在笔者的经验来看,这解释了为什么当用户连接到有付费证书的网站仍然遇到证书信任错误的原因。证书颁发机构提供根和下属公钥的捆绑,你需要将其导入到Web服务器配置。很多CA提供在线工具来检查中间证书是否被正确安装。当导入你的签名公钥时,你有必要检查中间证书是否需要注意避免必然的支持呼叫。
证书管理
OpenSSL加密工具包是工程师管理证书的“秘密武器”。这些二进制文件被包含在大多数*nix版本中,同时,也可用于Windows。这个强大的工具很值得我们学习,这样我们就不需要记住多个平台的本地证书管理的细微差别。精简版本就能够满足大多数日常需求。
微软.PFX文件捆绑密钥
PFX文件主要用于微软环境,在通常情况下,密钥在Windows中生成,然后由域集成CA自动对其签名。这是有用的,因为这个私钥、签名的公钥和CA公钥被捆绑成单个文件。这个密钥可以选择通过密码来加密,当你在公共网络传输证书时,这可以提供某种程度的保护。通过使用OpenSSL,单个组件可以被导出和转换。此外,这些文件不包含人类可读部分。
相关推荐
-
生死狙击:阻止恶意SSL通信六要点
SSL的使用每年都在稳定增长。将来会有越来越多的互联网通信都会被加密。不幸的是,不仅注重安全的公司和用户在利用加密,黑客们也在使用加密来隐藏其恶意企图。虽然有很多防火墙和威胁预防方案能够解密SSL通信,却不能跟上不断演变的解密需求……
-
七步解决关键SSL安全问题及漏洞
近年来,安全套接字层(SSL)技术已经有所改进,但同时也出现新的漏洞。那么如何解决关键SSL安全问题及漏洞呢?总共分七步……
-
感谢Let’s Encrypt吧,WordPress现向托管网站免费提供SSL
WordPress现在为其托管网站提供免费SSL证书,这可为广大客户提供更好的安全性。WordPress此前仅支持对子域的加密,但现在WordPress宣布,所有通过WordPress.com托管的自定义域都可自动获得免费HTTPS。
-
不合格域名会导致中间人攻击吗?
ICANN发布安全公告强调,SSL证书对于不合格扩展的内部域名的重要性。什么是一个不合格扩展的域名呢?为什么ICANN认为SSL证书可以防御这个风险呢?