Cómo administrar y renovar certificados SSL de manera efectiva

Administrar certificados SSL puede ser una tarea ardua, especialmente cuando llega el momento de renovarlos o reemplazarlos. Los certificados SSL vencidos pueden ser devastadores para las operaciones tecnológicas, desde mostrar mensajes de error en el navegador hasta detener completamente la producción. Por lo tanto, es importante no solo estar al tanto de las próximas expiraciones de certificados SSL (escaneos de red o, al menos, un registro para realizar un seguimiento de estos certificados son esenciales), sino también verificar por completo el éxito de la renovación/reemplazo de estos certificados.

Índice de Contenido
  1. Ubicación de los archivos de certificados SSL en Linux
  2. Verificando los detalles de un certificado utilizando el comando openssl
  3. Verificando la fecha de vencimiento de un certificado SSL
  4. Uso del script de validación de certificados SSL

Ubicación de los archivos de certificados SSL en Linux

Los archivos de certificados en Linux generalmente se encuentran en la carpeta /etc/pki/tls/certs o posiblemente dentro de una carpeta específica de la aplicación, como /etc/httpd para Apache (dependiendo de la persona o el proveedor que haya configurado/construido la aplicación). Estos generalmente usan extensiones .pem o .crt y probablemente se llamen '(nombre de host).pem' '(nombre de host).crt', pero a veces también se usa el nombre de archivo genérico "servidor".

Verificando los detalles de un certificado utilizando el comando openssl

El comando openssl es una herramienta multifuncional que se puede utilizar para administrar certificados. Para examinar los detalles de un certificado en particular, ejecute el siguiente comando:

openssl x509 -in (ruta al certificado y nombre del archivo de certificado) -text -noout

Verás una salida similar a la siguiente. Los campos Emisor, Sujeto, Not Before/Not After y Nombres Alternativos del Sujeto tendrán los detalles más útiles:

Verificando la fecha de vencimiento de un certificado SSL

También es útil verificar la fecha de vencimiento de un certificado SSL. Puedes ejecutar el siguiente comando para verificar la fecha de vencimiento de un certificado. Recomiendo encarecidamente ejecutar este comando antes y después de reemplazar o renovar un certificado SSL para confirmar el éxito. Ten en cuenta que al reemplazar certificados relacionados con aplicaciones (como Apache), es probable que necesites reiniciar la aplicación para que pueda cargar el nuevo certificado.

Protección antivirus en línea: McAfee Clinic lleva la seguridad de tu PC al siguiente nivel

Ya sea que utilices este comando en el sistema host mismo o lo ejecutes de forma remota contra ese sistema, sustituye "localhost" por el nombre de dominio completo del host que deseas verificar y cambia el puerto 443 según sea necesario para que coincida con el puerto abierto asociado al certificado SSL.

openssl s_client -connect localhost:443 2>/dev/null | openssl x509 -noout -dates

Recibirás una salida similar a la siguiente:

No Before: Mar 19 15:32:02 2021 GMT
No After : Mar 19 15:42:02 2022 GMT

Uso del script de validación de certificados SSL

También puedes utilizar un script para obtener aún más detalles sobre un certificado. A continuación se muestra un ejemplo de script llamado "ssl_validate.sh". Puedes copiar el contenido en un nuevo archivo de script con el nombre que elijas, darle permisos de ejecución con chmod +x y luego usarlo con la siguiente sintaxis:

./ssl_validate.sh (o el nombre de script que hayas elegido) servidor.empresa.com:443, donde "servidor.empresa.com" es el nombre de dominio completo (FQDN) del host que deseas verificar y 443 es el puerto al que está escuchando asociado al certificado SSL.

Cómo proteger tu computadora de los virus: métodos y consejos

Asegúrate de tener un camino hacia ese servidor y puerto, como a través de entradas de firewall aprobadas.

El script devolverá una salida similar a la siguiente para mostrar los detalles más relevantes del certificado SSL:

servidor.empresa.com:443 ; SSL ; CN: (CN del certificado SSL) ; Sujeto: (Sujeto del certificado SSL) ; Emisor: (Emisor del certificado SSL) ; notBefore: (Fecha de creación del certificado SSL) ; notAfter: (Fecha de vencimiento del certificado SSL) ; DaysUntilExpiration: (Días restantes hasta que el certificado SSL expire) ; Errores: (Cualquier error relacionado con el certificado SSL)

A continuación se muestra el script:

```shell
delim=" ; "
export delim
serverport=${1}
export serverport
echo "#${serverport}"
date_today=$(date +%F)
datediff() {
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
echo $(( (d1 - d2) / 86400 )) días
}
export -f datediff
sslscan() {
local sp=${1}
tls_content=$(echo "Q" | openssl s_client -showcerts -connect ${serverport} 2>&1)
if [[ "$?" == 0 ]]; then
tls_errors=$(echo "${tls_content}" | grep -i error )
tls_cert_subject=$(echo "${tls_content}" | openssl x509 -noout -subject )
tls_cert_issuer=$(echo "${tls_content}" | openssl x509 -noout -issuer )
tls_cert_cn=$(echo "${tls_content}" | openssl x509 -noout -subject | sed -e "s/.*CN=\([^/]*\).*/\1/" )
tls_cert_dates=$(echo "${tls_content}" | openssl x509 -noout -dates )
tls_cert_notafter_date=$(echo "${tls_cert_dates}" | grep notAfter |sed -e "s/notAfter=//" | tr -d '
' )
tls_cert_notbefore_date=$(echo "${tls_cert_dates}" | grep notBefore |sed -e "s/notBefore=//" | tr -d '
' )
tls_cert_datediff=$(datediff "${tls_cert_notafter_date}" "${date_today}")
echo -n "${serverport} ${delim} SSL"
echo -n " ${delim} CN:"
echo -n " ${tls_cert_cn}"
echo -n " ${delim} Sujeto:"
echo -n " ${tls_cert_subject}"
echo -n " ${delim} Emisor:"
echo -n " ${tls_cert_issuer}"
echo -n " ${delim} notBefore:"
echo -n " ${tls_cert_notbefore_date}"
echo -n " ${delim} notAfter:"
echo -n " ${tls_cert_notafter_date}"
echo -n " ${delim} DaysUntilExpiration:"
echo -n " ${tls_cert_datediff}"
echo -n " ${delim} Errores:"
echo -n " ${tls_errors}"
echo
else
tls_errors=$(echo "${tls_content}" | tr '
' '/' | tr ' ' '_' )
status="ERROR: ${tls_errors}"
echo -n "${serverport} ${delim} ${status}"
echo
fi
}
export -f sslscan
timeout 3 bash -c "sslscan ${serverport}"
if [[ $? != 0 ]]; then
echo -n "${serverport} ${delim} ERROR: CONNECTION_TIMED_OUT"
echo
fi
```

Con este script, podrás obtener información detallada sobre tus certificados SSL y verificar su estado de manera eficiente.

¡Defiéndete! Protege tu seguridad en línea contra amenazas críticas

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Cómo administrar y renovar certificados SSL de manera efectiva , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.