TLDR:
hostname=XXX
port=443
trust_cert_file_location=`curl-config --ca`
sudo bash -c "echo -n | openssl s_client -showcerts -connect $hostname:$port -servername $hostname \
2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' \
>> $trust_cert_file_location"
Respuesta larga
La razón básica es que su computadora no confía en la autoridad de certificación que firmó el certificado utilizado en el servidor de Gitlab . Esto no significa que el certificado sea sospechoso, pero podría ser autofirmado o firmado por una institución / empresa que no está en la lista de CA de su sistema operativo. Lo que debe hacer para evitar el problema en su computadora es decirle que confíe en ese certificado, si no tiene ningún motivo para sospechar de él.
Debe verificar el certificado web utilizado para su servidor gitLab y agregarlo a su </git_installation_folder>/bin/curl-ca-bundle.crt
.
Para verificar si al menos el clon funciona sin verificar dicho certificado, puede configurar:
export GIT_SSL_NO_VERIFY=1
#or
git config --global http.sslverify false
Pero eso sería solo para pruebas, como se ilustra en " SSL funciona con el navegador, wget y curl, pero falla con git ", o en esta publicación de blog .
Compruebe la configuración de un GitLab, en cuestión de 4272 .
Para obtener ese certificado (que necesitaría agregar a su curl-ca-bundle.crt
archivo), escriba a:
echo -n | openssl s_client -showcerts -connect yourserver.com:YourHttpsGitlabPort \
2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
(con ' yourserver.com
' ser el nombre de su servidor GitLab, y YourHttpsGitlabPort
generalmente es el puerto https 443
)
Para verificar la entidad emisora de certificados (entidad emisora de certificados), escriba a:
echo -n | openssl s_client -showcerts -connect yourserver.com:YourHttpsGilabPort \
2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' \
| openssl x509 -noout -text | grep "CA Issuers" | head -1
Nota: Valeriy Katkov sugiere en los comentarios agregar una -servername
opción al comando openssl, de lo contrario, el comando no se muestra certificado para www.github.com en el caso de Valeriy.
openssl s_client -showcerts -servername www.github.com -connect www.github.com:443
Findekano agrega en los comentarios :
para identificar la ubicación de curl-ca-bundle.crt
, podría usar el comando
curl-config --ca
Además, vea mi respuesta más reciente " github: la verificación del certificado del servidor falló ": es posible que deba volver a instalar esos certificados:
sudo apt-get install --reinstall ca-certificates
sudo mkdir /usr/local/share/ca-certificates/cacert.org
sudo wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
sudo update-ca-certificates
git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt
curl-config --ca
devuelto/etc/ssl/certs/ca-certificates.crt
, que es donde tuve que agregar el certificado. Aparte de eso, esta respuesta fue la primera información que me señaló en la dirección correcta con este problemawhich git
.curl-config --ca
, pero no me devolvieron nada.