
Renovar certificado autofirmado en Apache HTTP Server
Este artículo describe cómo generar y configurar un certificado SSL autofirmado en un servidor Apache HTTP, útil para entornos de desarrollo o pruebas. Incluye la definición de parámetros clave, como la duración del certificado y la información de la organización, así como un método para detectar certificados previos configurados en Apache. Luego, guía en la creación de un nuevo certificado y su integración en el servidor, incluyendo la configuración de permisos y el recargado de Apache para aplicar los cambios.
Creación de los parámetros del certificado autofirmado
Este apartado establece los parámetros necesarios para generar un certificado SSL autofirmado, definiendo aspectos clave como la duración del certificado y la información de la entidad emisora: país, estado, localidad, nombre de la organización, unidad organizativa, nombre de dominio y correo electrónico. Estos valores personalizan el certificado para su uso en servidores web como Apache.
DAYSINTERVAL=365
COUNTRY={2_chars_country_code} # ES
STATE={state} # Andalucia
LOCALITY={city} # Sevilla
ORGANIZATION_NAME={company_name} # rrc2software
ORGANIZATION_UNIT={company_section} # TI
COMMON_NAME=$(hostname --fqdn) # www.rrc2software.com
EMAIL_ADDRESS={email} # info@example.com
Detección del actual certificado instalado en Apache HTTP Server
Esta sección muestra cómo identificar la ubicación de los archivos del certificado SSL actual configurado en Apache HTTP Server. Utiliza comandos grep y cut para buscar las rutas del archivo de certificado (SSLCertificateFile) y de la clave privada (SSLCertificateKeyFile) dentro del archivo de configuración SSL de Apache. Esto permite verificar y reutilizar estos archivos al actualizar o reemplazar el certificado.
CERTIFICATE_CRT_FILE=`grep "^[[:space:]]*SSLCertificateFile[[:space:]]" /etc/httpd/conf.d/ssl.conf | cut -f2 -d' '`
CERTIFICATE_KEY_FILE=`grep "^[[:space:]]*SSLCertificateKeyFile[[:space:]]" /etc/httpd/conf.d/ssl.conf | cut -f2 -d' '`
Generación del nuevo certificado autofirmado y configuración en Apache HTTP Server
Esta sección describe cómo generar un nuevo certificado SSL autofirmado e integrarlo en Apache HTTP Server. El script comprueba que los archivos de certificado y clave privada existan, luego utiliza openssl para crear un certificado con parámetros personalizados, incluyendo duración, algoritmo de cifrado y campos de información organizacional. También genera un archivo de parámetros DH, ajusta los permisos de seguridad y recarga el servicio Apache para aplicar el nuevo certificado.
if [ ! -z "$CERTIFICATE_CRT_FILE" ] && [ ! -z "$CERTIFICATE_KEY_FILE" ]; then
openssl req -days $DAYSINTERVAL -x509 -nodes -newkey rsa:2048 -keyout $CERTIFICATE_KEY_FILE -out $CERTIFICATE_CRT_FILE -subj "/C=$COUNTRY/ST=$STATE/L=$LOCALITY/O=$ORGANIZATION_NAME/OU=$ORGANIZATION_UNIT/CN=$COMMON_NAME/emailAddress=$EMAIL/" -extensions san -config <(echo '[req]'; echo 'distinguished_name=req'; echo '[san]'; echo "subjectAltName=DNS:$(hostname --fqdn)")
openssl dhparam -out /etc/pki/tls/certs/dhparam.pem 2048
cat /etc/pki/tls/certs/dhparam.pem | tee -a $CERTIFICATE_CRT_FILE
chmod 600 $CERTIFICATE_CRT_FILE
chmod 600 $CERTIFICATE_KEY_FILE
systemctl reload httpd
fi
Tweet Share Share Pin Share Email Última modificación: Nov 14, 2024