![除了基于 .key 和 .crt 的加密之外,cakey.pem 和 cacert.pem 的作用是什么](https://linux22.com/image/1406528/%E9%99%A4%E4%BA%86%E5%9F%BA%E4%BA%8E%20.key%20%E5%92%8C%20.crt%20%E7%9A%84%E5%8A%A0%E5%AF%86%E4%B9%8B%E5%A4%96%EF%BC%8Ccakey.pem%20%E5%92%8C%20cacert.pem%20%E7%9A%84%E4%BD%9C%E7%94%A8%E6%98%AF%E4%BB%80%E4%B9%88.png)
我有.key
一个包含私钥数据的文件,.crt
一个带有公钥的证书文件,据我所知,这就是公钥加密,对吗?
不完全是。为了实现我的目标,我还必须生成 cakey.pem 和 cacert.pem,但我不知道它们是做什么用的。
我有一个使用 Postfix MTA 设置 TLS 的示例。
我愿意:
openssl genrsa 1024 > smtpd.key
openssl req -new -key smtpd.key -x509 -days 3650 -out smtpd.crt
这两个 - smtpd.key 和 smtpd.crt - 是密钥(私钥)和证书(包含公钥)。
是什么
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
cakey.pem 和 cacert.pem 文件用于什么?
答案1
你不需要证书颁发机构自签名证书本身完全有效。事实上,它是自己的 CA。
如果您想使用专用 CA,则需要使用smtpd.crt
该 CA 进行签名。CA 用于建立信任链。如果客户端信任 CA,则它会自动信任由该 CA 签名的所有证书。
以下是创建自签名 CA 并使用它签署证书的指南,摘自相似之处:
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 730