Certificados para los clientes
#!/bin/sh if [ $# -ne 2 ] then echo "Uso:" echo "$0 usuario dias" exit fi DIR=/etc/raddb/certs user=$1 dates=$2 CFG=$DIR/openssl.cnf CFGU=$DIR/Users/$user/openssl-$user.cnf CERTPATH=$DIR/Users/$user [ -d $DIR/Users ] || mkdir -p $DIR/Users/$user if ! [ -f $CERTPATH/openssl-$user.cnf ] then cat $CFG|\ sed "s/(commonName_default[ ]*=).*/&1 $user/g" |\ sed "s/emailAddress_default[ ]*=).*/&1 $ fi openssl req -batch -config $CFGU \ -new -nodes -keyout $CERTPATH/$user.key \ -out $CERTPATH/$user.req -days $dates openssl ca -batch -config $CFGU \ -policy policy_anything -out $CERTPATH/$user.crt \ -extensions xpclient_ext -extfile $DIR/xpextensions \ -infiles $CERTPATH/$user.req openssl x509 -in $CERTPATH/$user.crt -out $CERTPATH/$user.pem openssl pkcs12 -export -nodes -in $CERTPATH/$user.pem \ -inkey $CERTPATH/$user.key \ -certfile $DIR/CA/cacert.pem \ -name "$user" \ -out $CERTPATH/$user.p12 -clcerts cp $DIR/CA/cacert.pem $CERTPATH cp $DIR/root.der $CERTPATH # fin |
Cuando ejecutamos este script como
certificados.sh julia 365 |
debería crear un directorio /etc/raddb/certs/Users/julia que contiene todos los ficheros necesarios para la conexión. En Linux con wpa_supplicante deberemos utilizar julia.pem como certificado, julia.key como llave privada y cacert.pem como certificado de la CA. En sistemas win32 tendremos que usar julia.p12 como certificado que contiene también la llave privada y root.der que contiene el certificado de la CA. Con un doble click sobre ellos se pueden instalar.
Para revocar un certificado podemos ejecutar
openssl -revoke /ruta/cert.pem |
y regeneramos la lista de certificados revocados.
openssl ca -gencrl -config $SSLDIR/openssl.cnf -out $DIR/CA/crl/revoke.crl |