Consulta SSL

Alvaro Herrera alvherre en dcc.uchile.cl
Mie Ago 25 10:35:15 CLT 2004


On Wed, Jun 07, 2000 at 09:01:09PM -0400, Jorge Soto wrote:
> Si yo lo ubiera hecho la primera vez no lo estaría consultando como
> realizarlo, este es un sistema ya montado, soy novato en la
> administracion y deceo saber hacerca de esto, supongo que la lista me
> brinda ayuda en eso y no seré discriminado por hacer preguntas de
> novato.

Si hubieras dicho esto antes no habriamos hecho el comentario.  Aqui los
unicos discriminados son los que se discriminan a si mismos.

> Por favor si alguien sabe agradecere su respuesta

El certificado que necesitas, es oficial (comprado a una entidad
certificadora) o hecho y firmado por ti mismo?  Si es oficial, tienes
que comprar uno nuevo.  Si es hecho por ti mismo, te mando un
micro-howto que escribi al respecto ...



DISCLAIMER
=-=-=-=-=-

Esto debe usarse sólo para juguete, puesto que no he verificado que esto
sigue las recomendaciones de OpenSSL.  En cualquier caso, funciona
y por ej. los browsers aceptan la autoridad si se le entrega el
certificado.


CREACION DE LA ENTIDAD CERTIFICADORA
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Para generar la llave privada y certificado de la entidad certificadora:

openssl req -newkey 2048 > certreq.csr
# esto crea una peticion de certificado y una llave que se guarda en
# ./privkey.pem Se debe ingresar una "buena" passphrase.

openssl req -x509 -days 750 -key privkey.pem < certreq.csr > certif.pem
# esto convierte la peticion de certificado en un certificado en formato
# PEM (el formato PEM contiene lo mismo que DER, pero en lugar de ser
# binario queda en base64).  Se debe ingresar la misma passphrase: es
# para poder leer la llave privada.

openssl x509 -inform pem -outform der < certif.pem > certif.der
# Esto genera un certificado que es exportable automáticamente por los
# browsers (Mozilla e IE lo detectan automáticamente).

El ultimo archivo generado se puede exportar al servidor web.  Apuntando
el browser a él, éste pedirá instalar el certificado.  Cuando un cliente
quiera acceder a un sitio protegido por un certificado emitido por esta
autoridad, automáticamente será aceptado.


En este punto hay que agregar la CA en el directorio de SSL.  En mi caso
es /usr/lib/ssl.  Esto es simplemente cosa de copiar los archivos en un
nuevo directorio y agregar la sección respectiva en
/usr/lib/ssl/openssl.cnf (modificar el default_CA funcionó
perfectamente)


GENERAR CERTIFICADOS
=-=-=-=-=-=-=-=-=-=-

Para generar un nuevo certificado emitido por esta entidad, hay que
crear una petición de certificado.  Lo primero es crear un archivo como
el que sigue, supongamos que $QUIEN es el commonName, y guardarlo con el
nombre $QUIEN.req

-------------------------------------------------------
[req]
bits=2048
default_keyfile=server.key
prompt=no
distinguished_name=reporte

[reporte]
commonName=$QUIEN
stateOrProvinceName=xxx
localityName=yyy
organizationalUnitName=zzz
organizationName=xyz
emailAddress=zxy
countryName=CL
-------------------------------------------------------

Y luego ejecutar
openssl req -new -config $QUIEN.req -out $QUIEN.csr

La autoridad certificadora debe crear y firmar el certificado usando:

openssl ca -in $QUIEN.csr -out $QUIEN.crt

Esto genera $QUIEN.crt, que es el certificado.

Si es para un servidor que debe iniciarse desatendido, se le debe quitar
la passphrase a la llave privada, ejecutando

mv server.key server.key.org
openssl rsa -in server.key.org -out $QUIEN.key


-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"The problem with the future is that it keeps turning into the present"
(Hobbes)



Más información sobre la lista de distribución Linux