为什么Apache需要SSLCertificateKeyFile?

问题描述:

需要SSLCertificateKeyFile(私钥)的技术原因是什么?在哪里使用和为了什么?为什么Apache需要SSLCertificateKeyFile?

SSL证书文件包含X.509证书(其中,又包含用于加密的公钥)申报。 SSL证书密钥文件包含与证书中公钥对应的私钥。为了让网络服务器对进行加密解密,它必须同时拥有公钥(证书)和相应的私钥。与许多其他服务器产品不同,Apache将密钥和证书存储在单独的文件中。例如,基于Java的产品通常使用Java KeyStore文件,这是一个包含证书和私钥的加密数据库。

对于公共密钥加密的概述,包括使用私人密钥:

http://en.wikipedia.org/wiki/Public-key_cryptography#How_it_works

以及在TLS使用的所有步骤的详细划分,协议服务器用于HTTPS流量,这精确地显示出其中的私钥被使用:

http://en.wikipedia.org/wiki/Transport_Layer_Security

+0

这样的简短摘要如下:“在公钥密码学中,私钥用于......”? – Gumbo 2011-01-27 10:13:30

通常有三种指令包括:

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