Instalar una clave y un certificado

Esta es una tarea del comprador del certificado (el dueño del servidor).

Supongamos que tenemos los archivos generados más el certificado que nos envió la Autoridad de Certificación en el directorio actual.

Creamos unas variables de entorno para facilitarnos el proceso:

# El nombre del archivo (sin la extensión) que tienen tanto la clave como el certificado:
export CSR_BASENAME=www.example.org_HTTP_00
# La extensión de la clave privada:
export KEY_EXT="key"
# La extensión del pedido de certificado (esta no hace falta más, en realidad):
export REQ_EXT="csr"
# La extensión del certificado:
export CERT_EXT="crt"
# La extensión para el archivo que combina el certificado y la clave
export COMBINED_EXT="pem"

# Directorio destino donde el openssl tiene los certificados y las claves privadas
# Normalmente este directorio es del usuario '''root''' y el grupo '''ssl-cert'''
# y tiene permisos 0700 (drwx------)
export SSL_PRIV_DIR="/etc/ssl/private"
export SSL_DIR_OWNER="root"
export SSL_DIR_GROUP="ssl-cert"

Opcionalmente, creamos un certificado combinado (si queremos usar un solo archivo en la configuración del apache) que es simplemente la concatenación del archivo con la clave privada y el archivo con el certificado:

cat ${CSR_BASENAME}.${KEY_EXT} ${CSR_BASENAME}.${CERT_EXT} > ${CSR_BASENAME}.${COMBINED_EXT}

Ahora copiamos los archivos con claves y certificados al directorio correspondiente (hay que estar ubicado en el directorio donde están todos estos archivos):

# hago esto para ingresar la clave de sudo antes de entrar en el loop
sudo true

# copio los archivos al directorio destino
for EXT in ${KEY_EXT} ${CERT_EXT} ${COMBINED_EXT} ; do
  if [ ${EXT} == ${COMBINED_EXT} ] && [ ! -f ${CSR_BASENAME}.${EXT} ] ; then
    # si no está el archivo combinado, no importa, lo salteamos
    continue
  fi
  sudo cp -v ${CSR_BASENAME}.${EXT} ${SSL_PRIV_DIR}

  if [ ${EXT} == ${CERT_EXT} ] ; then
    # el certificado (sin la clave) lo puede ver cualquiera
    sudo chmod -v 644 ${SSL_PRIV_DIR}/${CSR_BASENAME}.${EXT}
  else
    sudo chmod -v 640 ${SSL_PRIV_DIR}/${CSR_BASENAME}.${EXT}
    sudo chown ${SSL_DIR_OWNER}:${SSL_DIR_GROUP} ${SSL_PRIV_DIR}/${CSR_BASENAME}.${EXT}
  fi
done

OpenSsl/InstalarUnaClaveYunCertificado (última edición 2008-11-21 11:22:26 efectuada por MarianoAbsatz)