Permitir que usuários instalem certificados em seu diretório pessoal?

4

Geralmente, os certificados SSL são instalados em todo o sistema (por exemplo, em /etc/ssl/certs ). É possível configurar o OpenSSL de uma maneira que permita ao usuário colocar certificados em seu diretório pessoal (por exemplo, em ~/.ssl/certs )?

Um caso de uso pode ser um usuário que precisa acessar serviços com um certificado autoassinado (gerado por ele, assim confiável); ter a CA auto-assinada instalada em todo o sistema estaria errado, porque os outros usuários não devem confiar nessa CA.

    
por David Costa 03.12.2014 / 03:34

1 resposta

6

Se você quer dizer aplicativos usando OpenSSL biblioteca para SSL , cada aplicativo pode especificar o arquivo (concatenado) e / ou o diretório (hash-linked) a ser usado para certificados confiáveis, ou pode invocar Padrões do OpenSSL, ou poderia oferecer a escolha. No primeiro caso, você precisa (poder e) configurar o aplicativo para especificar. Por exemplo, em curl use --cacert e / ou --capath por link . No segundo caso, os padrões OpenSSL compilados, que são dependentes do sistema e possivelmente dependentes, podem ser substituídos pelas variáveis de ambiente SSL_CERT_FILE e SSL_CERT_DIR , respectivamente.

Se você quer dizer aplicativos usando OpenSSL biblioteca para outras coisas (que usam certs) como CMS / SMIME, o OpenSSL tem uma API menos simples; Basicamente, o aplicativo deve construir diretamente um X509_STORE para ser usado para validação, embora eu pense ele ainda possa invocar os mesmos padrões.

Se você quer dizer o programa de linha de comando openssl , a imagem é um pouco mais complicada. Alguns utilitários (subcomandos) não usam armazenamento confiável (ou mesmo certs); aqueles que têm opções para especificar um geralmente -CAfile e -CApath ; veja as man pages para s_client , verify , ocsp etc, conforme aplicável. No entanto, a lógica que deve usar os padrões, se você não especificar as opções, foi codificada de forma inconsistente; houve discussão sobre a lista de suporte há alguns meses e acredito que uma correção foi (finalmente) acordada, mas a partir de 1.0.1j 15 out 2014 ela não foi lançada.

    
por 03.12.2014 / 09:15