Eu criei um certificado autoassinado para o meu servidor de compilação e gostaria de confiar globalmente no certificado em minha máquina, pois criei a chave sozinho e estou cansado de receber avisos.
Estou no Ubuntu 12.04. Como posso obter o certificado e confiar globalmente nele, para que navegadores (Google Chrome), utilitários CLI (wget, curl) e linguagens de programação (Python, Java etc.) confiem na conexão com https://mysite.com sem perguntar questões?
Respostas:
A resposta simples para isso é que praticamente todos os aplicativos lidam com isso de maneira diferente.
O OpenSSL e o GNUTLS (as bibliotecas de processamento de certificados mais usadas para lidar com certificados assinados) se comportam de maneira diferente no tratamento de certificados, o que também complica o problema. Os sistemas operacionais também utilizam mecanismos diferentes para utilizar a "CA raiz" usada pela maioria dos sites.
Isso de lado, dando o Debian como um exemplo. Instale o
ca-certificates
pacote:Em seguida, você copia a metade pública do seu certificado de CA não confiável (aquele usado para assinar seu CSR) no diretório de certificados da CA (como raiz):
E faça com que ele reconstrua o diretório com seu certificado incluído, execute como root:
e selecione a
ask
opção, vá até o seu certificado, marque-o para inclusão e selecione ok.A maioria dos navegadores usa seu próprio banco de dados de autoridade de certificação e, portanto, ferramentas como
certutil
essas devem ser usadas para modificar seu conteúdo (no Debian, fornecido pelolibnss3-tools
pacote). Por exemplo, com o Chrome, você executa algo como:O Firefox permitirá que você navegue até o certificado no disco, reconheça um arquivo de certificado e depois importe-o para a lista de CA raiz.
A maioria dos outros comandos, como as
curl
opções de linha de comando, você pode usar para apontar para sua CA,ou abandone a validação SSL completamente
O restante precisará de investigação individual se o
ca-certificates
truque semelhante não o classificar para essa aplicação específica.fonte
dpkg-reconfigure ca-certificates
lista. O que estou fazendo errado?whatever.pem
parawhatever.crt
..cer
e isso não funcionou. Eu tive que mudar o nome.crt
para que fosse reconhecido.Abordagem não interativa
Para uso em um contexto não interativo (por exemplo, uma receita de chef), você pode usar a seguinte sequência.
man update-ca-certificates
Esse método é preferível ao método de @ Drav, pois
/usr/share/
normalmente é reservado para arquivos adicionados pelo OS /apt-get
.fonte
/usr/local/share/ca-certificates/
conforme mencionado nas páginas de.crt
, encontrei.cert
alegou que foi adicionado mas não ajudouNo Fedora 23, adicione o arquivo .pem ou .der
/etc/pki/ca-trust/source/anchors/
e executesudo update-ca-trust extract
.Veja
man update-ca-trust
para detalhes, por exemplo, se deseja usar / etc ou / usr.fonte
Em centos:
fonte
openssl connect
devo especificar esta pasta / anchors? Ainda estou recebendo um erro "self signed certs
Abordagem não interativa (18 de outubro)
para sistemas recentes baseados em debian
Há uma distinção entre adicionar um certificado à loja do host e ativá-lo para que os aplicativos realmente os utilizem. Um certificado existente na loja não é necessariamente usado (embora eu deva admitir que muitos pacotes ainda estão errados)
Isso pode ficar confuso quando você configura um pacote que considera
/etc/ca-certificate.conf
e simplesmente se recusa a usar seu certificado, embora tenha foi adicionado sem erro. Você precisa informarupdate-ca-certificates
explicitamente para (não apenas copiar, mas) ativar o certificado adicionando-o a/etc/ca-certificate.conf
ou/etc/ca-certificate/update.d
.Agora, aqui fica confuso, pois há uma maneira de confiar implicitamente em um certificado usando um caminho diferente:
fonte