我在Web服务器上提供SSL页面,并且有一个问题。SSLCACertificateFile和SSLCertificateChainFile有什么区别?
当我使用SSLCertificateChainFile时,我从日语手机浏览器收到警告,但是当我使用PC浏览器(如IE,FF)时,没有问题。另一方面,SSLCACertificateFile不会对两个浏览器造成任何问题。
浏览器连接到apache时有什么区别吗?
Answers:
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 = ...'主题。