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