允许用户在他们的主目录中安装证书?

通常,SSL证书安装在系统范围内(例如在/etc/ssl/certs )。 是否可以configurationOpenSSL的方式,允许用户把证书放在他们的主目录(例如~/.ssl/certs )?

用例可以是需要使用自签名证书(由他生成,因此可信)访问服务的用户; 将自签名CA安装在系统中会是错误的,因为其他用户不应该相信CA.

如果您指的是使用SSL的 OpenSSL 库的应用程序,则每个应用程序可以指定用于受信任的证书的(连接的)文件和/或(散列链接的)目录,也可以调用OpenSSL的默认值,或者可以提供select。 在第一种情况下,您需要(能够)configuration应用程序指定的内容。 例如,在curl中,按照http://curl.haxx.se/docs/manpage.html使用--cacert和/或--capath 。 在第二种情况下,编译后的OpenSSL默认值(系统和可能的版本相关)可分别由环境variablesSSL_CERT_FILESSL_CERT_DIR覆盖。

如果您的意思是使用OpenSSL 库的应用程序(如使用证书),如CMS / SMIME,OpenSSL有一个不太简单的API; 基本上应用程序必须直接构build一个X509_STORE来用于validation,但我认为它仍然可以调用相同的默认值。

如果你的意思是命令行程序 openssl的图片有点复杂。 一些实用程序(子命令)不使用信任库(甚至根本不使用证书)。 那些有选项来指定一个通常-CAfile-CApath ; 请参阅适用于s_client的手册页, verifyocsp等。 但是,如果指定选项,那么应该使用默认值的逻辑长时间不一致编码; 几个月前曾经在支持名单上进行过讨论,我相信已经(最终)已经达成了一个解决scheme,但是截至2014年10月15日1.0.1j这个版本还没有发布。