Portanto, na escola, precisamos instalar um certificado para acessar sites https. No firefox, posso importar o certificado. No entanto, não posso fazer isso com a linha de comando. Por exemplo, executando, git push
eu recebo:
fatal: unable to access 'https://github.com/user/repo': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Como importo um certificado para remover isso? A importação deve poder se autenticar para mim. Além disso, é um .cer
arquivo, portanto, a resposta para .crt
não funcionará. Além disso, não quero etapas sobre como configurar o git, como já tenho. Eu quero saber se é possível fazer isso. Ou posso simplesmente desativar git
totalmente a autenticação com o comando e fazer com que ele ignore certificados como o que a resposta aqui diz? Além disso, não quero que a página seja carregada, configurei o firefox para fazer isso. Eu quero que o git push
comando dê a saída padrão como:
[master 630d087] message
1 file changed, 93 insertions(+), 80 deletions(-)
rewrite somefile (84%)
Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 978 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
To https://github.com/User/Repo.git
851ae39..630d087 master -> master
Nota: Eu descobri o seu git config --global http.sslverify false
. Mas eu gostaria de ver uma resposta para tudo, não apenas um truque
fonte
.crt
. Eu preciso.cer
Respostas:
TL; DR
Para que tudo funcione e não apenas seu navegador, você precisa adicionar esse certificado de CA ao repositório de CA confiável do sistema.
No ubuntu:
Por quê
Deixe-me explicar o que está acontecendo também, para que os outros pôsteres vejam por que eles não precisam de nenhum certificado para usar o Github sobre HTTPS.
O que está acontecendo lá é que sua escola está interceptando todas as comunicações SSL, provavelmente para monitorá-las.
Para fazer isso, o que eles fazem é essencialmente um ataque "intermediário" e, por causa disso, seu navegador reclama que ele não está sendo capaz de verificar o certificado do github. O proxy da sua escola está tirando o certificado do github e fornecendo seu próprio certificado.
Quando o navegador tenta verificar o certificado fornecido pela escola em relação à autoridade de certificação que assinou o certificado do github, ele falha corretamente.
Portanto, para que a conexão SSL funcione na escola, você precisa aceitar conscientemente esse ataque "MITM". E você faz isso adicionando o certificado CA da escola como confiável.
Quando você confia na autoridade de certificação da escola, sua verificação do certificado falso do github funcionará, pois o certificado falso do github será verificado pela autoridade de certificação da escola.
Esteja ciente de que a conexão SSL não é mais segura, pois o administrador da escola poderá interceptar todas as suas conexões criptografadas.
fonte
/usr/local/share/ca-certificates/
. Vejaman update-ca-certificates
, que fala sobre a existência de uma lista de permissões,/usr/share/ca-certificates/
mas sobre como ela confia implicitamente em tudo no/usr/local/share/ca-certificates/
diretório./usr/local/share/ca-certificates
, tive que usásudo dpkg-reconfigure ca-certificates
-la para pegar a CA.O
ca-certificates
pacote possui as instruções emREADME.Debian
:Observe que ele menciona um diretório diferente das outras respostas aqui:
Depois de copiar,
/usr/local/share/ca-certificates/
você poderá atualizar as permissões do certificado e executarsudo update-ca-certificates
conforme mencionado na resposta do Telegraphers. Você verá na saída que o certificado foi adicionado.fonte
As extensões .crt, .pem e .cer são intercambiáveis, basta alterar a extensão do nome do arquivo, elas têm a mesma forma. Tente o seguinte:
fonte
openssl(1)
para converter o certificado para o formato PEM. Execute:$ openssl -in mycert.cer -inform DER -out mycert.pem -outform PEM
openssl x509 -inform DER -in certificate.cer -out certificate.pem
Eu uso a seguinte compilação de respostas anteriores:
Pode ser modificado para ser de uma linha.
Geralmente ambos
site.example.com
eexample.com
são os mesmos nomes de host.fonte
Eu li todas as soluções e resolvi assim;
fonte
Eu estava tendo um problema semelhante ao instalar o certificado no firefox e no google chrome, mas a atualização no terminal
sudo apt-get update
não estava funcionando e deu 403 erros de IP proibido. Eu também estava tendo um arquivo sample.cer. Então, basicamente, tenho que convertê-lo para .crt primeiro.Ainda assim,
sudo dpkg-reconfigure ca-certificates
não consegui encontrar o certificado necessário. O problema comigo é que eu estava copiando o certificado no lugar errado.Em vez de copiá-lo em,
$/usr/share/ca-certificates
eu estava copiando em$/usr/local/share/ca-certificates
Mas, colocando-o no lugar certo, resolvi o meu problema. Mas ainda não consigo atualizar os pacotes ou instalar novos pacotes.Solução rápida (para mim):
Uso de ftp em vez de http
e o comando acima funcionou. Faça uma cópia do arquivo sources.list antes de fazer as alterações.
Se algo não estiver claro ou não for adequado, corrija-me.
fonte
Para acessar um site com
https
, se você estiver usando um navegador CLI ou GUI, não precisa do seu certificado shool.Para usar
git
via http (s), você precisa registrar sua chave pública nas configurações do seu perfil no GitHub .Mais informações aqui . Mude seu perfil do GitHub aqui .
Tente o seguinte:
... funciona sem um certificado adicional.
fonte