Red Hat Training

A Red Hat training course is available for RHEL 8

第 3 章 创建和管理 TLS 密钥和证书

您可以使用 TLS (传输层安全)协议加密在两个系统间传输的通信。此标准将非对称加密用于私钥和公钥、数字签名和证书。

3.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 信息可以包括您所在国家/地区的两字母国家/地区代码、您的州全名或省、您的城市或 town,即您的机构名称、电子邮件地址,也可以为空。许多当前商业 CA 首选 Subject Alternative Name 扩展,并在 CSR 中忽略 DN。

RHEL 为使用 TLS 证书提供了两个主要工具包:GnuTLS 和 OpenSSL。您可以使用 openssl 软件包中的 openssl 实用程序创建、读取、签名和验证证书。gnutls-utils 软件包提供的 certtool 工具可以使用不同的语法以及后端中的所有不同库集合执行相同的操作。

其他资源