Entonces, en la escuela necesitamos instalar un certificado para acceder a los sitios https. En firefox, puedo importar el certificado. Sin embargo, no puedo hacerlo con la línea de comando. Por ejemplo, al ejecutar git push
obtengo:
fatal: unable to access 'https://github.com/user/repo': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
¿Cómo importo un certificado para eliminar esto? La importación debe poder autenticarse por mí. Además, es un .cer
archivo, por lo que la respuesta .crt
no funcionará. Además, no quiero pasos sobre cómo configurar git, como ya lo he hecho. Quiero saber si es posible hacer eso. ¿O simplemente puedo desactivar la autenticación con el git
comando totalmente y hacer que ignore los certificados como dice la respuesta aquí? Además, no quiero que se cargue la página web, he configurado firefox para que lo haga. Quiero que el git push
comando dé la salida estándar 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: descubrí que es git config --global http.sslverify false
. Pero me gustaría ver una respuesta para todo, no solo un truco git
fuente
.crt
. Necesito.cer
Respuestas:
TL; DR
Para que todo funcione y no solo su navegador, debe agregar ese certificado de CA al repositorio de CA de confianza del sistema.
En ubuntu:
Por qué
Permítanme explicar lo que está sucediendo también, para que los otros carteles vean por qué no necesitan ningún certificado para usar Github sobre HTTPS.
Lo que está sucediendo allí es que su escuela está interceptando todas las comunicaciones SSL, probablemente para monitorearlas.
Para hacer eso, lo que hacen es esencialmente un ataque de "hombre en el medio", y debido a eso, su navegador se queja legítimamente de que no puede verificar el certificado de github. El representante de su escuela está sacando el certificado de github y, en su lugar, está proporcionando su propio certificado.
Cuando su navegador intenta verificar el certificado proporcionado por la escuela contra el CA que firmó el certificado de github, falla legítimamente.
Por lo tanto, para que la conexión SSL funcione en la escuela, debe aceptar conscientemente ese ataque "MITM". Y lo hace agregando el certificado CA de la escuela como uno de confianza.
Cuando confía en esa escuela CA, su verificación del certificado falso de github funcionará, ya que la escuela CA verificará el certificado falso de github.
Tenga en cuenta que la conexión SSL ya no es segura ya que el administrador de su escuela podrá interceptar todas sus conexiones cifradas.
fuente
/usr/local/share/ca-certificates/
. Veaman update-ca-certificates
, que habla de que hay una lista blanca/usr/share/ca-certificates/
pero de cómo implícitamente confía en todo en el/usr/local/share/ca-certificates/
directorio./usr/local/share/ca-certificates
, tuve que usarlasudo dpkg-reconfigure ca-certificates
para recoger la CA.El
ca-certificates
paquete tiene las instrucciones en suREADME.Debian
:Tenga en cuenta que aquí se menciona un directorio diferente de las otras respuestas:
Después de copiar en
/usr/local/share/ca-certificates/
usted, puede actualizar los permisos del certificado y ejecutarlossudo update-ca-certificates
como se menciona en la respuesta de Telegraphers. Verá en la salida que se agregó el certificado.fuente
Las extensiones .crt, .pem y .cer son intercambiables, solo cambie la extensión del nombre del archivo, tienen la misma forma. Prueba esto:
fuente
openssl(1)
para convertir el certificado al formato PEM. Ejecutar:$ openssl -in mycert.cer -inform DER -out mycert.pem -outform PEM
openssl x509 -inform DER -in certificate.cer -out certificate.pem
Utilizo la siguiente compilación de respuestas anteriores:
Se puede modificar para ser de una sola línea.
A menudo ambos
site.example.com
yexample.com
son los mismos nombres de host.fuente
Leí todas las soluciones y las resolví así;
fuente
Tenía un problema similar en el que la instalación del certificado en Firefox y Google Chrome funcionaba, pero la actualización en el terminal
sudo apt-get update
no funcionaba y daba 403 errores de IP prohibidos. Yo también estaba teniendo un archivo sample.cer. Básicamente, primero tengo que convertirlo a .crt.Aún así,
sudo dpkg-reconfigure ca-certificates
no pude encontrar el certificado requerido. El problema conmigo es que estaba copiando el certificado en el lugar equivocado.En lugar de copiarlo en,
$/usr/share/ca-certificates
lo estaba copiando en$/usr/local/share/ca-certificates
Pero al colocarlo en el lugar correcto resolvió mi problema. Pero todavía no puedo actualizar los paquetes o instalar nuevos paquetes.Solución rápida (para mí):
Uso de ftp en lugar de http
y el comando anterior funcionó. Haga una copia del archivo sources.list antes de realizar los cambios.
Si algo no está claro o no es correcto, corrígeme.
fuente
Para acceder a un sitio web con
https
, ya sea que esté utilizando un navegador CLI o GUI, no necesita su certificado escolar.Para usar a
git
través de http (s), debe registrar su clave pública en la configuración de su perfil en GitHub .Más información aquí . Cambia tu perfil de GitHub aquí .
Prueba esto:
... funciona sin un certificado adicional.
fuente