Entidad de Certificacion - openCA
Descripción
El software de estructura de PKI de nuestra eleccion.
Este manual supone que todo se hace en un solo equipo ( SOLO POR PROBAR)
Prerequistos
En esencia Perl y servidores Apache y MySQL - MariaDB o PgSQL.
Las dependencias de perl son fundamentales . Al final hay script de instalacion.
Instalación desde TGZ
1. Descarguelo
Traiga y descomprima primero el tools .. pero no me compila
tar xvzf openca-base-1.1.1.tgz
2. Configure
Cambiese al directorio. El configure es complicado porque toma muchos parametros. En el directorio configs/examples puede encontrar algunos ejemplos.
Yo hice mi propio .. .. esta en el anexo
3 Compile e instale
Lo estandar es hacer
- #> make
- #> make install-offline
- #> make install-online
o cada uno por aparte
- #> make install-pub
- #> make install-ca .. etc
para cada servicio
** es necesario crear el usuario openca:openca para intalar
Instalación desde RPM
1. Descargue e instale
Eato no tiene mayor gracia. Normalmente tambien se proveen paquetes de online y offline solamente. No puede hacerse desmenusado.
https://sourceforge.net/projects/openca/files/openca-base/releases/v1.5.1/binaries/linux/CentOS6.4-x86_64/
Y ahora esta pidiendo el openca-tools y lo mismo se descarga y se instala en /usr/local como prefijo
Configuración
En una instalacion si lo hace por estandar RPMs los sitios claves son:
- /var/www/html/pki : Sitio de acceso web
- /var/www/cgi-bin/pki: Sitio donde realmente estan los scripts en perl que constituyen la CA
- /usr/local/openca-1.5.1: Sistema base. Aqui estan los almacenamientos, las configuraciones y demas
Pero si lo hace por nuestro scripts .. queda en
- /usr/local/openca-1.5.1/www/html : Sitio de acceso web
- /usr/local/openca-1.5.1/www/cgi-bin: Sitio donde realmente estan los scripts en perl que constituyen la CA
- /usr/local/openca-1.5.1: Sistema base. Aqui estan los almacenamientos, las configuraciones y demas
1. Backend de BD
Dirijase al los howtos de MySQL - MariaDB o PostgreSQL para crear una base de datos y un usuario con contraseña para ella.
Configurelo en config.xml y en database/DBI.conf
2. Backend LDAP
** Puede no usar ldap .. y todo guardarlo en la BD
Es una configuracion estandar de LDAP, pero debe ser consistente con la informacion que tiene la configuracion de openssl.
- commonName = Laboratorio CA AzuanTech
- organizationalUnitName = LabCA
- 0.organizationName = AzuanTech CA
- countryName_default = CO
CN=Laboratorio CA AzuanTech, OU=LabCA,O=AzuanTech CA,C=CO
Entonces se agrega la raiz .. en inicio.ldiff pongo
dn: o=AzuanTech CA,c=CO
objectclass: top
objectclass: organization
o: AzuanTech CA
y lo agrego con
#> ldapadd -x -D “cn=Manager,o=AzuanTech CA,c=CO” -W -f inicio.ldif
3. Configuracion de OpenSSL
En el directorio /usr/local/openca-1.1.1/etc/openca/openssl o $PREFIX/etc/openca/openssl tome el archivo openssl.cnf
Este archivo deberia ser parte de la configuracion automatica, pero no funciona. Es necesario tomar el openssl.cnf. template para que no sea sobrescrito.
Cambios:
subjectAltName = pki@labCA.azuan.com
emailAddress = pki@labCA.azuan.com
emailAddress_max = 60
commonName = Laboratorio CA AzuanTech
commonName_max = 64
organizationalUnitName = LabCA
#organizationalUnitName_default = AzuanTech CA User
0.organizationName = Organization Name (eg, company)
0.organizationName_default = AzuanTech CA
countryName = Country Name (2 letter code)
countryName_default = CO
countryName_min = 2
countryName_max = 2
Hay otras cosas en este archivo que vienen heredadas del Configure inicial como
0.organizationName_default = AzuanTech CA
OJO: Este archivo debe ser el mismo en todos los “actores” de la CA: pub, CA, RA, .. etc
OJO2: Mire que aqui esta definiendo la estructura de LDAP: O → OU → CN
4. Configuracion de la CA ( o sus nodos)
El archivo de configuracion maestro esta en $PREFIX/etc/openca/config.xml y ahi toca poner todo lo que sea necesario
Cambios:
<name>default_language</name> <value>es_ES</value>
<name>default_web_password</name> <value>@passwdrootd@</value>
<name>default_web_password</name> <value>passwdroot</value>
<name>send_mail_automatic</name> <value>yes</value>
<name>support_mail_address</name> <value>support@labCA.azuan.com</value>
<name>service_mail_account</name> <value>support@labCA.azuan.com</value>
Y asi sucesivamente, revise LDAP (Si lo usa) y el el acceso al backend de MySQL - MariaDB
Una vez haya completado la configuracion no olvide correr ./configure_etc.sh para que se haga la “difusion” de los cambios y luego reinicie el servicio.
Hay otro archivos que tambien es necesario cambiar en $PREFIX/etc/openca/servers/*.template .. sobretodo el correo electronico.
5. Inicio CA
Haga un link al script de arranque y usselo
ln -s /usr/local/openca-1.1.1/etc/init.d/openca /etc/init.d/
Visite en un navegador la pagina https://labCA/pki/ca o https://labCA/openca/ca para inciar la CA y siga los pasos
- Inicializar la BD
- Crear el par de llaves (queda en $PREFIX/var/openca/crypto/keys)
- Crear la solicitud de firma PCS#10 (OJO: hay que ser consistente con la estructura que se esta usando con LDAP)
- Autofirmar el certificado
Hasta aqui ya esta la CA autonoma pero es bueno generar los otros dos certificados: el del operador de la CA y el de la RA.
OCPS y PRQP
Los proceso con ambos servidores son muy similares asi que consideramos el mismo proces
1. Instalation
Requiere tener previamente instalado la libreria LibPKI de casa matriz openca.
Descargue los fuentes y descomprima, y use el mismo estandar de configure, make y make install. Si desea puede asignar un prefix=/usr/local/ocpsd-2.0.0 si prefiere
Una vez instalado, el script de arranque esta en PREFIX/etc/init.d como es estandar con openca. Haga un link a /etc/init.d y con chkconfig incluyalo en el sistema de arranque
Toco hacer algunos ajustes en los encabezados para hacerlo compatible con chkconfig.
2. Configuracion
PRQP
1. Instalacion
2. Configuracion
Trucos
1. Como agrego un template de un Certificado
- Desde la interfaz de la CA puede ir a InicioPKI → Configuracion → Ver Perfiles → Agregar un perfil
- En etc/openca/rbac/roles.xml debe estar
- Los templates correspondientes en etc/openca/openssl/openssl y extfiles (que es copiese uno de los otros)
- Corra el script de actualizacion de configuracion
- Afine lo que sea necesario.
Problemas
1. Aborting connection - you are using a too short symmetric keylength
- SSLOptions +StdEnvVars +ExportCertData
http://www.mail-archive.com/openca-users@lists.sourceforge.net/msg10066.html –
Referencias
1. hay un problema con User.pm e InitServer
hay que reemplazarlos
FIN
==============================================================
ANEXOS
==============================================================
script para configurar
#!/bin/sh
PREFIX=$1
VER=1.1.1
if [ -z “${PREFIX}” ] ; then
PREFIX=/usr/local/openca-${VER}
fi
./configure \\
–prefix=${PREFIX} \\
–with-service-mail-account=“admin@labCA.azuan.com” \\
–with-support-mail-address=“support@labCA.azuan.com” \\
\\
–with-ca-organization=“AzuanTech CA” \\
–with-ca-country=CO \\
\\
–with-openca-user=openca \\
–with-openca-group=openca \\
\\
–with-auth-user=admin \\
–with-auth-password=passwdroot \\
\\
–enable-scep \\
–enable-package-build \\
\\
–with-db-name=openca \\
–with-db-host=localhost \\
–with-db-user=opencausr \\
–with-db-passwd=opencapass \\
–with-db-type=MySQL - MariaDB \\
\\
–with-web-host=labCA.azuan.com \\
–with-httpd-fs-prefix=${PREFIX}/www \\
–with-httpd-user=apache \\
–with-httpd-group=apache \\
\\
–with-htdocs-url-prefix=/pki \\
–with-cgi-url-prefix=/cgi-bin/pki \\
==============================================================
openca.conf (pa que luzca igual que con RPMS)
#offline
ScriptAlias /cgi-bin/pki/batch /usr/local/openca-1.1.1/www/cgi-bin/pki/batch
ScriptAlias /cgi-bin/pki/ca /usr/local/openca-1.1.1/www/cgi-bin/pki/ca
Alias /pki/batch /usr/local/openca-1.1.1/www/html/pki/batch
Alias /pki/ca /usr/local/openca-1.1.1/www/html/pki/ca
#online
ScriptAlias /cgi-bin/pki/ra /usr/local/openca-1.1.1/www/cgi-bin/pki/ra
ScriptAlias /cgi-bin/pki/pub /usr/local/openca-1.1.1/www/cgi-bin/pki/pub
ScriptAlias /cgi-bin/pki/ldap /usr/local/openca-1.1.1/www/cgi-bin/pki/ldap
ScriptAlias /cgi-bin/pki/scep /usr/local/openca-1.1.1/www/cgi-bin/pki/scep
Alias /pki/ra /usr/local/openca-1.1.1/www/html/pki/ra
Alias /pki/pub /usr/local/openca-1.1.1/www/html/pki/pub
Alias /pki/ldap /usr/local/openca-1.1.1/www/html/pki/ldap
15-Enero-2010 J.E.Gomez v1.0 Primera version
Advertencia
Este documento es privado y es de u so exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.