我在我的网络服务器上提供 SSL 页面,我有一个问题。SSLCACertificateFile 和 SSLCertificateChainFile 有什么区别?
当我使用 SSLCertificateChainFile 时,我收到了来自日本手机浏览器的警告,但当我使用 PC 浏览器(如 IE、FF)时,没有问题。另一方面,SSLCACertificateFile 对两种浏览器都没有造成任何问题。
浏览器连接到apache时有什么区别吗?
我在我的网络服务器上提供 SSL 页面,我有一个问题。SSLCACertificateFile 和 SSLCertificateChainFile 有什么区别?
当我使用 SSLCertificateChainFile 时,我收到了来自日本手机浏览器的警告,但当我使用 PC 浏览器(如 IE、FF)时,没有问题。另一方面,SSLCACertificateFile 对两种浏览器都没有造成任何问题。
浏览器连接到apache时有什么区别吗?
SSLCertificateChainFile 是一个正确的选择,但从Apache 2.4.8 开始,该指令已过时。该指令导致列出的文件与证书一起发送到任何连接的客户端。
SSLCACertificateFile(以下简称“CACert”)取代 SSLCertificateChainFile(以下简称“Chain”),另外还允许使用相关证书签署客户端证书。这种身份验证非常罕见(至少目前如此),如果您不使用它,恕我直言,没有理由通过使用 CACert 而不是 Chain 来增强其功能。另一方面,有人可能会争辩说附加功能没有任何害处,CACert 涵盖了所有情况。这两个论点都是有效的。
不用说,如果您询问证书供应商,他们将始终推动 CACert over Chain,因为它为他们提供了另一件事(客户证书),他们可能会向您出售。;)
实际上,两者都可能是有效的选择。
使用 SSLCertificateChainFile 发布由公共证书颁发机构(VeriSign、RapidSSL 等)签署的证书
使用 SSLCACertificateFile 提供您的“私有”CA,它可以颁发客户端证书,您可以将其分发给某些选定的用户。这些client
证书实际上非常适合身份验证(与基本密码身份验证相比),并且通常不需要由公共 CA 分发(因此您可以节省一些钱)。
因此,如果您想为网站的某些部分添加安全授权,请执行以下操作:
<Directory /var/www/html/authorized>
SSLVerifyClient require
SSLVerifyDepth 5
SSLOptions +StrictRequire
SSLUserName SSL_CLIENT_S_DN_CN
SSLRequireSSL
</Directory>
简而言之,SSLUserName SSL_CLIENT_S_DN_CN
将经过身份验证的用户名设置为证书的 CommonName,而不是整个 x509 '/OU=Foo/CN=...' 主题。