Skip to content

Instantly share code, notes, and snippets.

@CrimsonGlory
Created October 22, 2024 20:54
Show Gist options
  • Save CrimsonGlory/bebff65a9f04096baa316ade9e41dd99 to your computer and use it in GitHub Desktop.
Save CrimsonGlory/bebff65a9f04096baa316ade9e41dd99 to your computer and use it in GitHub Desktop.
Certificado godaddy
fix para cuando falla el certificado por consola y anda desde el navegador
----------
Cambié cosas del tema del certificado de Pepito.
Había un problema que desde la consola no andaba y desde el navegador sí. Esto es porque el certificado estaba bien (firmado por GoDaddy) pero no incluía toda la cadena hasta el root certificate. Dado que GoDaddy es muy común, los browsers tienen en cache los certificados intermedios (son siempre los mismos). Pero desde la consola eso no es así. (Además los navegadores ya vienen con un archivo de certificados extra a los que están en el sistema operativo).
En el zip de GoDaddy vienen 3 archivos.
<hash>.pem
<hash>.crt
gd_bundle-g2-g1.crt
<hash>.pem y <hash>.crt son el mismo archivo (pueden hacer un sha1sum para comprobarlo). Este es el certificado por el cuál pagamos. El archivo gd_bundle-g2-g1.crt es la cadena desde el de GoDaddy hasta el root. (son 3 certificados) Este archivo es siempre el mismo.(uno de los cert de godaddy expira en el 2031).
Lo que faltaba era concatenar este gd_bundle al otro.
cat <hash>.pem gd_bundle-g2-g1.crt > certificado_completo.crt
El orden es importante. Primero va el certificado <hash> y despúes el bundle.
Ya que estamos hice "las cosas bien" desde cero. Otra de las diferencias es que tiré la key anterior y volví a generar una nueva. La key anterior no la había hecho yo. Si mal no recuerdo la generó GoDaddy para que "no tengas que hacer nada". Entonces ténicamente GoDaddy podía snifear/modificar todo el tráfico sin cambiar el certificado. Lo mismo aplica para netskope dado que netskope hace man in the middle del sitio de GoDaddy.
Ahora que la key es generada desde el mismo server de Pepito, GoDaddy debería cambiar el certificado para hacerle man in the middle a un usuario de Pepito. Lo mismo netskope.
Los pasos fueron:
1- generar una nueva key y CSR. Esto es 1 comando de openssl (openssl req -new -newkey rsa:2048 -nodes -keyout www.pepitogigassys.com.key -out www.pepitogigassys.com.csr) . Aclaro de CSR es 'certificate signing request'.
2- Uno sube el archivo www.pepitogigassys.com.csr a GoDaddy
3- Hay que esperar unos minutos. Dado que tenemos el mismo DNS con GoDaddy, no es necesario hacer una verificación. Pero en otro caso te podrían hacer poner una string en el TXT del DNS.
4- bajar el zip de GoDaddy
5- hacer desde la consola "cat <hash>.pem gd_bundle-g2-g1.crt > certificado_completo.crt"
6-El certificado va a ser certificado_completo.crt y la clave privada es www.pepitogigassys.com.key
Aclaración final. Nada de lo que se hizo con GoDaddy tenía información privada. El CSR puede ser publicado. Da igual. El certificado que se baja es público. Lo único privado es el archivo .key que nunca sale del servidor de Pepito.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment