我理解SSL是如何工作的,但我的问题更多的是关于客户端的证书存储。要了解确切的上下文,您可以假设我在编写自己的浏览器。 我的渲染部分将由WebKit完成,http请求处理部分将由libCurl完成。 libCurl有一个名为CURLOPT_CAPATH的选项,我可以使用它来将一个文件夹位置告诉libCurl,以及libCurl将为可能的可信证书机构引用的内容。但我不知道那个位置是什么?它是特定于操作系统的,我的浏览器类应用程序假设可以处理多个平台。
同一操作系统上的多个浏览器使用相同的证书存储区,或者所有这些浏览器都有自己的证书存储区?
我需要担心nss吗?
答案 0 :(得分:3)
OSx和Windows保留证书的地方?
OS X将证书存储在Keychain中。 Windows将证书存储在证书库中。
是一个统一的目录吗?
没有
或在多个地点拆分?
是
Windows将它们保存在注册表中而不是目录中?
Windows将证书存储在证书库中。它由文件支持,但您不能直接对文件进行操作。
同一操作系统上的多个浏览器使用相同的证书存储区,或者它们都有自己的证书存储区?
取决于。
Firefox和Opera带有他们自己的信任锚集合(CA Certifcates)。
Chrome使用操作系统提供的商店。
Safari使用钥匙串中的证书。
IE使用证书存储区中的证书。
我不确定其他浏览器会做什么。例如,我不知道Iceweasel和Dillo从哪里获取信任锚列表。
我需要担心nss吗?
这取决于。你有什么想法?
...
CURLOPT_CAPATH
...
使用cURL时,您经常使用" ca-certs"文件。请参阅Automatically converted CA Certs from mozilla.org。