需要 SSLCertificateKeyFile(私钥)的技术原因是什么?它在哪里使用,有什么用?
3 回答
SSL 证书文件包含 X.509 证书(该证书又包含用于加密的公钥)。SSL 证书密钥文件包含与证书中的公钥对应的私钥。为了让网络服务器加密和解密流量,它必须同时拥有公钥(证书)和相应的私钥。与许多其他服务器产品不同,Apache 将密钥和证书存储在单独的文件中。例如,基于 Java 的产品通常使用 Java KeyStore 文件,这是一个包含证书和私钥的加密数据库。
通常包含三个指令:
SSLCertificateFile /opt/csw/apache2/certs/icompany/publicCert.pem
SSLCertificateChainFile /opt/csw/apache2/certs/icompany/chain.pem
SSLCertificateKeyFile /opt/csw/apache2/certs/icompany/PrivateKeyCert.pem
SSLCertificateFile
应该只包含您的证书的公共部分,您希望将其从网站交付给客户端。
如果SSLCertificateChainFile
指定,则网络服务器会将关联的证书(以构建到根 CA 的整个链)附加到网络服务器证书。您也可以将证书的私有部分放入文件中,SSLCertificateFile
但出于安全原因不建议这样做(例如,网络服务器存在错误,发生缓冲区流量并将私钥打印给攻击者)。
而是仅将私钥放在单独的文件中并在SSLCertificateKeyFile
有关公钥密码学的概述,包括私钥的使用:
http://en.wikipedia.org/wiki/Public-key_cryptography#How_it_works
以及 TLS 中使用的所有步骤的详细分解,这是您的服务器用于 https 流量的协议,它准确显示了私钥的使用位置: