Si encuentras alguna parte que no entiendes puedes dejarnos un comentario y te ayudaremos lo más rápido posible.
Solución:
Tratar -k
:
curl -k https://yourhost/
Debería “aceptar” certificados autofirmados
Seguir estos pasos debería resolver su problema:
- Descargue y guarde el certificado autofirmado:
echo quit | openssl s_client -showcerts -servername "$API_HOST" -connect "$API_HOST":443 > cacert.pem
- Di la
curl
cliente al respecto:curl --cacert cacert.pem --location --silent https://$API_HOST
También se podría usar wget e ignorar certificados con: wget --no-check-certificate https://$API_HOST
Tuve este problema, exactamente el mismo problema y mensajes de error, pero usé certtool de GNUTLS para generar mi certificado en lugar de openssl.
Mi problema era que no había hecho que mi certificado autofirmado fuera una CA. Sólo estaba configurado para actuar como un Servidor web certificado Que es todo lo que quería hacer con él y no iba a usarlo como una CA para firmar otros certificados.
Pero cuando desee agregar un certificado a la cadena de confianza como emisor de otros certificados, ese certificado debe ser una CA, ¡o lo rechazará openssl!
Con certtool -i < mycert.crt
hay que ver esto:
Extensions:
Basic Constraints (critical):
Certificate Authority (CA): TRUE
Intenta agregar -addext basicConstraints=critical,CA:TRUE,pathlen:1
a su comando openssl o modificando su archivo cnf con el mismo efecto.
O use certtool, es mucho más fácil para la generación de certificados únicos:
certtool -p --outfile localhost.key
certtool -s --load-privkey localhost.key --outfile localhost.crt
Y luego responda las indicaciones para proporcionar el CN del certificado y así sucesivamente. ¡Y diga que sí cuando se le pregunte si es para una autoridad certificadora!
Reseñas y puntuaciones
Ten en cuenta comunicar este escrito si te ayudó.