在PKI(公共密钥)公共权力设施的基本系统中,所有操作均围绕证书和密钥。一组角色,策略,硬件,软件和程序。
使用钥匙,您可以根据钥匙制定证书。如果您想被广泛使用,那么一般标准绝对是必不可少的。在PKI系统中,该证书的标准为X.509。
X.509标准定义了公共密钥证书最常用的格式。
证书中最重要的是公共密钥信息。只能从证书中提取公共密钥,以解密发件人由私钥加密的数据。公共密钥信息是证书的核心。
除了公钥外,证书还包含许多其他信息,例如身份信息(主机名,组织或个人)。
创建证书证书非常简单。首先,让我们看一个使用OpenSSL命令创建证书的示例。
在创建证书之前,可以创建取决于证书创建的公共密钥和私钥。X.509证书可以支持各种公共密钥算法,例如RSA,DSA,ECDA,ED25519等。
在这里,我们选择使用RSA算法来生成键对,如下所示:
输入通行证,我们可以得到CA.Key,这是RSA私钥。
接下来,您可以使用此CA.Key创建证书。
可以看出,根据密钥,证书还需要提供其他信息,例如国家名称,省名,组织名称。
最后,我们可以获得CA证书CA.CRT。
如果要查看证书的状态,则可以使用以下命令:
您可以看到CA证书包含其他信息,例如日期,序列号,签名算法,发行人,有效性和其他信息。
上面生成的证书实际上是证书。该证书可以签署其他证书请求生成子认证并生成证书证书。
如果客户要要求CA服务器要求新证书怎么办?
首先,客户端还需要生成自己的密钥对。如果客户端是CA服务器本身,请求CA证书的过程称为自签名。
如果要请求证书,则必须首先生成请求CSR。您也可以使用OpenSSL命令进行执行:
由于CSR请求还需要生成CA证书,因此需要类似的信息。
最后,我们生成了一个server.csr文件。
接下来,使用此CSR文件请求证书:
上面命令的含义是CA服务器上的私钥,root证书和刚刚生成的证书请求server.csr,并使用CA服务器签名生成自签名的证书。
最后获取一个自签名的server.csr证书文件。
使用openssl命令查看证书状态:
您可以看到该结构与根CA证书相同。这里的主题是server.csr中输入的信息。
我们上面使用的后缀后缀是CRT,这是认证的缩写。
实际上,X.509证书还支持几种后缀。
PEM的全名是隐私增强的电子邮件。可以从PEM最初为加密电子邮件准备的名称中看出。
它是在der+base64中编码的证书。PEM证书通常是文本格式,“ ----开始证书------”开始,并以“ ----------------------------------------------------------”。
这三个是由DER编码的二进制证书,但有时会使用base64进行编码,例如.pem。
它是PKCS#7的签名数据。
PKCS的全名是公钥加密标准。这是由RSA实验室和其他安全系统开发人员制定的一系列标准,以促进公共密钥密码的开发。
PKCS#7的全名是加密消息语法标准。
与PKCS#12签名的数据可以同时包括证书和私钥。
PKCS#12的前身通常包含PKCS#12格式的数据。
证书的层次结构应得到充分理解。证书的层次结构也称为证书链。
从我们收到的最终证书开始,我们可以遵循一个或多个CA证书,最后证书是证书。
例如,当前证书的链结构为a-> b-> C。
如果您想检查A证书的有效性,则需要使用B的公共密钥进行验证,那么B的有效性也需要由C的公钥验证,因此级别验证是直到直到根证书。
什么是交叉认证?
如果现在有两个证书的链条和d-> e。但是现在这两个链是独立的。如果A证书还想使用E进行身份验证,我该怎么办?
让我们首先考虑A-> B的含义。A-> b表示A证书是用B证书签名的。更确切地说,A证书是在B证书中使用公共密钥签名的。
如果我们使用E在B中签署公共密钥并获得证书C,则B和C具有相同的公钥,因此对于A,A-> B和A-> C-> E都是有效的证书链。
如果B使用B签署E的公共密钥并获得证书F,则D-> E和D-> F-> B也是两个有效的证书链。
这样的结构称为交叉认证。
交叉认证在不同的CA链中用于相互认证,这非常有用。
X.509证书的使用范围很广。例如,Web访谈中最常见的TLS/SSL和HTTP使用X.509证书。
此外,SMTP,POP,IMAP,LDAP,XMPP提供了X.509证书的支持。
以上是X.509证书的使用和相关原理的引入。
有关更多内容,请参考http://www.flydean.com/42-pki-x509/
最受欢迎的解释,最深的干货,最简单的教程,您不知道的许多技巧正在等待您发现!
欢迎注意我的公共帐户:“程序的事情”,了解技术并更好地了解您!
原始:https://juejin.cn/post/7099723298031796254