在网络安全领域,SSL证书体系扮演着至关重要的角色。本文将带你深入了解SSL证书体系中的各个重要概念,包括CA、SSL证书分类、SSL与TSL的关系、数字签名以及PSK介绍,同时还会涉及到nginx的相关配置。

一、CA:证书签发机构

CA是公钥基础设施(Public Key Infrastructure,PKI)的核心,负责签发证书、认证证书以及管理已颁发证书。CA拥有一个包含公钥和私钥的证书。网上公众用户通过验证CA的签字来信任CA,任何人都可以获取CA的证书(含公钥),用以验证它所签发的证书。当用户想要获得属于自己的证书时,需先向CA提出申请,CA在判明申请者身份后,为其分配一个公钥,并将该公钥与申请者身份信息绑定,签字后形成证书发给申请者。

二、SSL证书

SSL证书,即服务器SSL证书,是遵守SSL协议的一种数字证书,由全球信任的证书颁发机构验证服务器身份后颁发。将SSL证书安装在网站服务器上,可实现网站身份验证和数据加密传输双重功能。SSL协议及其继任者TLS协议是实现网络通信加密的安全协议,能在客户端(浏览器)和服务器端(网站)之间建立加密通道,确保数据在传输过程中不被窃取或篡改。

SSL证书有三个测评等级,其中EV SSL证书最高,OV SSL证书次之,DV SSL证书最弱。DV SSL证书仅验证域名所有权,主要起加密传输信息的作用,不能证明网站真实身份;OV SSL证书需验证网站所有单位真实身份,是标准型SSL证书;EV SSL证书遵循全球统一严格身份验证标准办法,是业界最高安全级别的SSL证书。OV SSL主要在国内网站应用,EV SSL在国外网站应用更多。靠谱的商用网站一般会部署 EV SSL证书或 OV SSL证书,而不会部署被欺诈网站滥用的DV SSL证书。

三、SSL证书分类和文件种类

1.证书分类:

(1)CA证书,即根证书。若不安装该证书,即使安装了其他证书,浏览器也可能提示不安全。在单向https认证中,该证书安装是可选的。

(2)服务器证书。SSL证书中必须安装的证书之一,通过证书的key生成csr文件,再由CA证书签名,生成服务器证书。

(3)客户端证书。在双向https验证中必须有客户端证书,生成方式与服务器证书相同,单向证书则无需生成。

2.证书格式:

(1)CER:服务器证书、CA根证书链。CRT证书的微软型式,可在微软系统环境下将.crt转换为.cer(.both DER 编码的.cer,或 base64 [PEM]编码的.cer)。

(2)KEY:私钥,扩展名用于私钥。键可以被编码为二进制DER或ASCII PEM。

(3)CRT:中间证书、证书文件。可以是二进制格式或文本格式,与.DER格式相同,不保存私钥。常用于Apache、Nginx等。

(4)CSR:证书签名请求,由认证请求信息、签名算法标识符和数字签名组成。包含公钥,生成CSR需要私钥,但私钥不是CSR的一部分。

(5)PEM:一般是文本格式,可保存证书和私钥。

(6)DER.CER:二进制格式,只保存证书,不保存私钥。

(7)PFX.P12:二进制格式,同时包含证书和私钥,一般有密码保护。

(8)JKS:二进制格式,同时包含证书和私钥,一般有密码保护。常用于Weblogic、Tomcat、Jboss。

(9)PFK:常用于IIS等。

(10)KDB:常用于IHS、Webspphere。

四、SSL和TSL

SSL位于可靠的面向连接的网络层协议和应用层协议之间,通过互相认证、使用数字签名确保完整性、使用加密确保私密性,实现客户端和服务器之间的安全通讯。由SSL记录协议和SSL握手协议两层组成。

TSL用于两个应用程序之间提供保密性和数据完整性,也由两层组成:TLS记录协议和TLS握手协议。TLS是更为安全的升级版SSL,由于SSL这一术语更为常用,所以我们仍将安全证书称作SSL。

SSL认证分为单向认证和双向认证。单向认证只要求站点部署SSL证书,任何用户都可访问(除IP被限制等情况),服务端提供身份认证。双向认证则需要服务端对客户端进行身份认证,只有服务端允许的客户才能访问,安全性相对更高。一般Web应用采用单向认证,在应用逻辑层保证用户合法登入。但企业应用对接可能要求对客户端做身份验证,这时就需要双向认证。

数字签名是用自己的私钥给数据加密,有两个作用:一是确定消息确实是由发送方签名并发出来的;二是确定数据电文内容是否被篡改,保证消息的完整性。

五、PSK介绍

PSK是预共享密钥,用于验证L2TP/IPSec连接。是针对家庭或小型公司网络设计的,用户需输入预先配置好的相同密钥接入网络,密钥可以是8到63个ASCII字符或64个16进制数字。使用PSK时,AP和客户端必须配置相同的密钥或加密密码。AP发送随机字符串到客户端,客户端接受后根据密钥加密并发送回AP,AP解密后若与原来发送的字符串匹配,则允许客户端连接。

六、nginx配置介绍

1.ssl_certificate:证书其实是公钥,会被发送到连接服务器的每个客户端。

2.ssl_certificate_key:私钥用于解密,权限要得到保护但nginx主进程能够读取。私钥和证书可以放在一个证书文件中,这种方式只有公钥证书才发送到client。

3.ssl_session_timeout:客户端可以重用会话缓存中SSL参数的过期时间,内网系统默认5分钟太短,可以设成30分钟甚至4小时。

4.ssl_protocols:用于启动特定的加密协议,nginx在1.1.13和1.0.12版本后默认是SSLv3 TLSv1 TLSv1.1 TLSv1.2,但SSLv3有不少被攻击的漏洞,TLSv1.1与TLSv1.2要确保OpenSSL>= 1.0.1。

5.ssl_ciphers:选择加密套件,不同浏览器所支持的套件和顺序可能不同。可以通过openSSL-v cipher ‘加密算法’查看所支持算法。

6.ssl_prefer_server_ciphers on:设置协商加密算法时,优先使用服务端的加密套件,而不是客户端浏览器的加密套件。

以上就是有关“详解CA认证与SSL证书的实施策略”的介绍了,深入理解SSL证书体系及相关技术对于保障网络安全至关重要。无论是选择合适的SSL证书类型,还是正确配置服务器如nginx,都能为网络通信提供更可靠的安全保障。