第 2 章 创建并管理 TLS 密钥和证书
您可以使用 TLS (传输层安全)协议加密在两个系统间传输的通信。此标准将非对称加密与私钥和公钥、数字签名和证书一起使用。
2.1. TLS 证书
TLS (传输层安全)是一种协议,它允许客户端-服务器应用程序安全地传递信息。TLS 使用公钥和私钥对系统来加密在客户端和服务器间传输的通信。TLS 是到 SSL (安全套接字层)的后继协议。
TLS 使用 X.509 证书将主机名或机构等身份绑定到使用数字签名的公共密钥。X.509 是一个定义公钥证书格式的标准。
安全应用程序的身份验证取决于应用证书中公钥值的完整性。如果攻击者用自己的公钥替换了公钥,则它可以模拟真正的应用程序,并获得对安全数据的访问权限。为防止此类攻击,所有证书都必须由证书颁发机构(CA)签名。CA 是一个可信节点,用于确认证书中公钥值的完整性。
CA 通过添加公钥签名并发布证书来签署公钥。数字签名是用 CA 的私钥编码的一条消息。通过分发 CA 的证书,CA 的公钥可供应用程序使用。应用程序使用 CA 的公钥解码 CA 的数字签名来验证证书是否为有效签名。
要让证书由 CA 签名,您必须生成一个公钥,并将其发送给 CA 进行签名。这称为证书签名请求(CSR)。CSR 也包含证书的可分辨名称(DN)。您可以为任一证书提供的 DN 信息可以包括您所在国家的两字母国家代码、州或省、城市或乡镇的全名,您机构的名称、电子邮件地址,也可以为空。许多当前商业 CA 首选 Subject Alternative Name 扩展,并在 CSR 中忽略 DN。
RHEL 为使用 TLS 证书提供了两个主要工具包:GnuTLS 和 OpenSSL.您可以使用 openssl
软件包中的 openssl
工具创建、读取、签名和验证证书。gnutls-utils
软件包提供的 certtool
工具可以使用不同的语法以及后端中的所有不同库的集合执行相同的操作。
其他资源
- RFC 5280:Internet X.509 公钥基础设施证书和证书撤销列表(CRL)配置文件
-
openssl (1)
,x509 (1)
,ca (1)
,req (1)
, 和certtool (1)
man page