Esta entrada consiste en generar unos certificados SSL válidos e importarlos en RACF.
En mi caso, estos certificados los voy a usar en z/OSMF. Los pasos deberían ser similares si elegimos otro producto. Los usaré para que al conectar z/OSMF aparezca como https válido.
Al entrar a la web de z/OSMF, indica que el certificado no es válido.
Para que sea un certificado válido, debe ser firmado por una autoridad verificada. No vale un certificado autogenerado por RACF sin firmar (por ejemplo).
Primero generamos un certificado. Es obligatorio que en “CN” y “ALTNAME” pongamos el nombre del dominio ya que, si no lo ponemos, no podremos generar el certificado firmado.
Ahora con el siguiente job tenemos que generar el fichero CSR (Certificate Signing Request). Lo usaremos más adelante para generar el certificado firmado. De esta forma, ya tendremos la clave privada (private key) en z/Os.
Lo tuve que hacer así porque si generaba todo el certificado firmado (con la clave privada incluida), después me daba error al importarlo en z/OS.
El fichero CSR será similar al siguiente:
Para hacer esta entrada, voy a elegir un servicio gratuito. Este certificado tiene una validez de 90 días.
Usaré el servicio de ZeroSSL (https://zerossl.com/). Existen otros gratuitos, como CerBot. Ambos utilizan Let’s Encrypt. He elegido este porque sirve para mi propósito de enseñar. En sistemas de empresas, lo normal sería utilizar un certificado SSL de pago.
Ya me he registrado y he accedido a mi cuenta. Clic en “New Certificate”.
Ponemos el nombre del dominio que tengamos configurado z/OS.
En mi caso, elijo 90 días.
Usaremos el CSR generado en pasos anteriores.
En mi caso, elijo el gratuito.
Ahora hay que verificar que nosotros poseemos el dominio. Hay varias formas: email, entrada en DNS o subiendo un fichero al servidor web.
En mi caso, voy a elegir DNS ya que solo tengo comprado el dominio (sin servidor).
Voy a la gestión del dominio para editar las entradas DNS.
Creamos la entrada DNS con los datos indicados en ZeroSSL.
Volvemos a ZeroSSL y pulsamos en “Next step”. Ahora pulsamos “Verify Domain”.
Una vez verificado, ya podemos descargar el certificado.
Tendremos los siguientes ficheros:
Si, por algún motivo, tuvieseis que cambiar el tipo de salto de línea de los certificados para adaptarlo a Windows (no va a ser necesario en este caso), os explico cómo hacerlo.
Para hacer esto, podremos usar Notepad++. Abrimos uno de los certificados con Notepad++.
Vamos al menú “Vista”, “Mostrar símbolo” y seleccionamos “Mostrar todos los caracteres”. Veremos que al final de la línea aparece “LF”.
Pulsamos “Control+F” y vamos a la pestaña “Reemplazar”.
Marcamos la opción “Extendido” y reemplazamos “\n” por “\r\n”.
Veremos que aparece “CRLF”.
Para subir los certificados de forma individual, lo más sencillo es abrir ambos certificados con un editor de texto y copiar el contenido.
Creamos dos datasets secuenciales (PS), con Record Format “VB” y Record Length “84”
Ahora vamos a preparar una serie de jobs para importarlo a RACF y añadirlos al anillo, borrando los existentes previamente.
Usaré varios jobs que se pueden descargar al principio de la entrada.
Primero debemos conocer el anillo que contiene los certificados. Los anillos deben estar asociados al usuario de la tarea correspondiente (owner). En este caso, IZUSVR.
Con el siguiente comando listamos los anillos de este usuario:
TSO RACDCERT ID(IZUSVR) LISTRING(*)
Para saber el anillo que debemos modificar, hay que mirar la configuración (IZUPRMxx) de la tarea de z/OSMF.
En este caso, se trata del miembro IZUPRM00. Solo hay que buscarlo en la PARMLIB correspondiente. Uso el anillo “ZOSMF_Keyring”.
Empezamos haciendo un display de la configuración actual. En mi caso, estos certificados los añadiré a zOSMF, por lo tanto, todos los jobs trabajarán sobre el anillo ZOSMF_Keyring.
Antes de empezar a borrar certificados es conveniente confirmar que los certificados que hemos subido son correctos. No queremos llevarnos una sorpresa una vez hayamos empezado a borrar certificados.
$00CHKCR. Comprueba que los certificados que hemos puesto en los dataset son correctos.
Comprobamos que en ambos certificados nos muestra información.
$01LSTCR. Hace un display del anillo y de los certificados.
Para saber si hay que usar “ID(IZUSVR)” o “CERTAUTH”, podemos fijarnos en la columna “Cert Owner” de la imagen anterior. Así sabremos qué debemos poner.
Terminará con RC=0.
Debemos tener en cuenta que el certificado ADCD_COMMON se usa en más anillos, por lo tanto, lo podemos sacar de este anillo, pero no debemos borrarlo.
$02RMVCR. Saca del anillo los certificados que ya no necesitamos.
Terminará con RC=0.
$03DELCR. Este job es opcional porque borra los certificados de RACF.
Debemos tener claro que queremos/debemos ejecutarlo. En mi caso, lo dejaré sin ejecutar.
Terminará con RC=0.
$16DELCR. Sirve para borrar el certificado que usamos para crear el fichero CSR. Para borrarlo, es obligatorio añadir el parámetro FORCE.
No es necesario borrarlo. Pongo el job a modo informativo.
$04REFCR. Refresca la configuración de RACF y hace un display del anillo para comprobar que los certificados ya no están.
Terminará con RC=0.
Comprobamos que ya no están.
$05IMP12. Este job añade el fichero “.P12” que creamos en los primero pasos. En mi caso, no funcionó, pero lo dejo a modo informativo.
$05IMPCA. Este job añade el certificado CA a RACF.
Terminará con RC=0.
$05IMPCR. Este job añade el certificado del servidor firmado (server certificate) a RACF.
Terminará con RC=0.
$06CONCR. Conecta los certificados al anillo.
Terminará con RC=0.
$07REFCR. Refresca la configuración y hace display del anillo de y los certificados.
Terminará con RC=0.
Ahora paramos y arrancamos las tareas de z/OSMF (IZUANG1 y IZUSVR1) para que utilice los nuevos certificados.
Cuando entremos de nuevo a la web, ya veremos que el certificado es válido.
Espero que os haya gustado. ¡Hasta pronto!