Skip to content

Instantly share code, notes, and snippets.

@joker-x
Created April 17, 2014 00:06
Show Gist options
  • Save joker-x/10943739 to your computer and use it in GitHub Desktop.
Save joker-x/10943739 to your computer and use it in GitHub Desktop.
Genera un certificado autofirmado
#!/bin/bash
#
# Genera un certificado autofirmado
#
# VARIABLES DE CONFIGURACIÓN
USUARIO="www-data:www-data"
DESTINO="/etc/nginx/ssl"
PASSWD="pass:pEpElEchEs"
DOMINIO=$1
if [[ $# -ne 1 ]]; then
echo "USO: genera_certificado_autofirmado.sh <DOMINIO>"
exit 1
fi
# Se crearán los certificados con el nombre del dominio borrando espacios
# y reemplazando punto por guión bajo
NOMBRE=$(echo $DOMINIO | sed 's/\./_/g' | sed 's/ //g')
# Si el directorio DESTINO no existe lo creamos y nos movemos allí
if [[ ! -d $DESTINO ]]; then
mkdir -p $DESTINO
chown "$USUARIO" $DESTINO
fi
cd $DESTINO
# Generamos la clave privada protegida con contraseña: pahdb-passwd.key
openssl genrsa -des3 -out ${NOMBRE}-passwd.key -passout ${PASSWD} 4096
# Generamos la solicitud de firma de certificado (CSR)
openssl req -new -key ${NOMBRE}-passwd.key -out ${NOMBRE}.csr -passin "$PASSWD" -subj /CN="$DOMINIO"
# Generamos la clave privada sin contraseña: pahdb.key
openssl rsa -in ${NOMBRE}-passwd.key -out ${NOMBRE}.key -passin "$PASSWD"
# Generamos la clave pública autofirmada (CRT)
openssl x509 -req -days 365 -in ${NOMBRE}.csr -signkey ${NOMBRE}.key -out ${NOMBRE}.crt
# Borramos pahdb-passwd.key y pahdb.csr
rm ${NOMBRE}-passwd.key ${NOMBRE}.csr
# Ajustamos los permisos
chown "$USUARIO" ${NOMBRE}.key ${NOMBRE}.crt
chmod 440 ${NOMBRE}.key ${NOMBRE}.crt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment