Fullscreen
Loading...
 
Imprimir Comparte esta página

openca

Instalar OpenCa en Debian Squeeze con Base de Datos Mysql

INSTALACIÓN DE OPEN-CA Debian Squeeze 6.0 con Base de datos Mysql.



Instalación de un solo Nodo:

Es decir la Autoridad Certificadora (CA), Autoridad de Registro (RA) con sus Bases de datos, van a estar en el mismo servidor, es decir que esta guía aplica para un solo Host.

La guía consta de 4 pasos:

instalación de paquetes necesarios
instalación de OpenCa-tools?
Instalación de OpenCa-base? y
adecuación de apache para conexión Segura y Openca.

Tomado de Version del Manual: 0.1 José Pertuz y actualizado por Omar Andres Zapata (Para corregir los multiples bugs en perl y soporte a las nuevas versiones de openssl)

El primer paso es descargar los paquetes de la Pagina de OpenCA:

http://www.openca.org/(external link)
http://ftp.openca.org/openca/(external link)
Utilizaremos los siguientes paquetes:
OpenCA-Tools: openca-tools-1.3.0.tar.gz
OpenCA-base: openca-base-1.1.1.tar.gz
fixes (parche de reparación) De un bug que tiene la versión 1.1.1 de OpenCa-Base?

INSTALACION DE DEPENDENCIAS

Lo primero es instalar todas las dependencias necesaria desde los repositorios oficiales de debian Primero instalamos la base de datos Mysql que nos va a servir para la CA y la RA.

aptitude install mysql-server

Crear la Base de Datos openca: En esta guía para hacerlo mas sencillo cree la base de datos openca y el usuario que utilice fue root, para producción si es recomendado crear un usuario que se encargue de la base de datos openca, la clave de root de mysql que coloque es 123456

Ahora Instalamos dependencias para OpenCa y tools: Esta dividido en 4 bloques de instalación, hago la observación ya que en la web no hay mucha información precisa sobre la instalación de OpenCA, Así que pueda que exista algún paquete que este demás, pero eso es algo que mas adelante ire depurando.
aptitude install apache2 gawk libssl-dev libdbi-perl libdb-dev libxml-perl libauthen-sasl-perl libcgi-session-perl \
libconvert-asn1-perl libdigest-hmac-perl libdigest-md5-perl libdigest-sha1-perl libio-socket-ssl-perl libio-stringy-perl \
libmime-base64-perl libmime-tools-perl libnetserver-generic-perl libparse-recdescent-perl liburi-perl libx500-dn-perl \
libxml-twig-perl libintl-perl libdbd-pg-perl libdbd-mysql-perl


aptitude install libapache2-mod-perl2 libcgi-session-perl libxml-parser-perl libauthen-sasl-perl libconvert-asn1-perl \
libdigest-hmac-perl libdigest-sha1-perl libintl-perl libio-socket-ssl-perl libio-stringy-perl libmime-lite-perl libmime-perl \
libmailtools-perl libnet-server-perl libnet-ldap-perl libparse-recdescent-perl libx500-dn-perl libxml-twig-perl libdbd-pg-perl \
libdbi-perl libpg-perl libxml-dom-perl libxml-sax-perl libglib-perl perl perl-modules libldap2-dev libdigest-md2-perl \
libdigest-md4-perl liburi-perl libpgp-sign-perl


aptitude install gfortran libdbix-xml-rdb-perl libqd-dev libcgi-xml-perl libextutils-f77-perl fort77 libxml-perl libxml-regexp-perl
aptitude install module-assistant


Luego Ejecutamos:
m-a prepare


Aquí terminamos la Instalación de Paquetes para que openCa funcione bien.

INSTALACIÓN DE OPENCA-TOOLS

Instalamos OpenCa-tools?.
crear la carpeta openca en /usr/local/openca y aquí descomprimimos los archivos descargados.

mkdir /usr/local/openca


Ejecutar dentro de /usr/local/openca/openca-tools-1.3.0/
./configure --prefix=/usr/local/openca --with-openca-prefix=/usr/local/openca
        make clean
        make
        make install

Luego entramos a /usr/bin/
Y creamos los enlaces simbólicos.
cd /usr/bin/
ln -s /usr/local/openca/bin/openca-crmf .
ln -s /usr/local/openca/bin/openca-scep .
ln -s /usr/local/openca/bin/openca-sv .
chmod -R +x /usr/local/openca

Con esto ya se encuenta instalado el paquete openca-tools.

INSTALACIÓN DE OPENCA-BASE

Instalaciónde OpenCA-base
Creamos la carpeta AC en /usr/local/openca

mkdir /usr/local/openca/AC


Crear dentro de /usr/local/openca/openca-base-1.1.1 un archivo llamado compilar.sh con permisos de
ejecución, su contenido sera lo siguiente:

#!/bin/bash
./configure \
--prefix=/usr/local/openca/AC \
--with-module-prefix=/usr/local/openca/AC/modules \
--with-openca-prefix=/usr/local/openca/AC \
--with-web-host=localhost \
--with-httpd-user=www-data \
--with-httpd-group=www-data \
--with-httpd-fs-prefix=/var/www/openca \
--with-cgi-fs-prefix=/var/www/cgi-bin \
--with-ca-country="CO" \
--with-ca-state="Antioquia" \
--with-ca-locality="Medellin" \
--with-ca-organization="Sistema de Certificados Electrónicos" \
--with-service-mail-account="omazapa@gfif.udea.edu.co" \
--with-db-name=openca \
--with-db-host=localhost \
--with-db-user=root \
--with-db-passwd=123456 \
--with-db-type=mysql \
--with-db-port=3306
# FIN

Luego ejecutamos el archivo compilar.sh
puede tomar tiempo el: checking getting latest version information…
Al terminar la configuración del compilar.sh debemos tener una salida como esta:

Installation Details:
===

OpenCA Server:
  • OpenCA prefix .................: /usr/local/openca/AC
  • Build prefix ..................:
  • OpenCA User ...................: root
  • OpenCA Group ..................: root
  • OpenCA Tools prefix ...........:

Web Server:
  • httpd User ....................: www-data
  • httpd Group ...................: www-data
  • httpd prefix ..................: /var/www/openca
  • htdocs prefix .................: /var/www/openca/html/pki
  • cgi prefix ....................: /var/www/cgi-bin
  • htdocs URL prefix .............: /pki
  • cgi URL prefix ................: /cgi-bin/pki

Other:
  • OpenSSL Prefix ................: /usr
  • OpenSSL Libs ..................: -Wl,-rpath,/usr/lib -L/usr/lib -L/usr -lcrypto -lssl

Done.

System Configured for: Debian

Please now use 'make' to build the components.
Use 'make install-offline' for the CA installation and
use 'make install-online' for RA/Public interface installation

More targets are available. Use 'make help' for a full list.

Es muy importante que los valores mostrados no queden en blanco. Sobre todo el OpenCa prefix. Ahora procedemos a instalar

make clean
make
make test

  1. Para instalar CA:
make install-offline

  1. Para Instalar RA:
make install-online


Copiar los fixes de reparacion (para corregir el error de /etc/init.d/openca start mas adelante)

cd fixes/
cp User.pm /usr/local/openca/AC/modules/perl5/OpenCA/
cp initServer /usr/local/openca/AC/lib/openca/functions/


Luego en: /usr/local/openca/AC/etc/openca/ ejecutar: configure_etc.sh

cd /usr/local/openca/AC/etc/openca/
sh configure_etc.sh

  1. Creamos el Enlance del demonio OpenCA
cd /etc/init.d/
ln -s /usr/local/openca/AC/etc/init.d/openca .

Con rcconf puede habilitar para que openca se inicie automaticamente al iniciar el sistema operativo.

  1. Iniciamos OpenCA
/etc/init.d/openca start

Nos va a pedir clave, esa es la clave del administrador web de ac, ar, ldap y node Hasta Este punto, OpenCa ya esta instalado en el Equipo.

Ahora vamos con la parte Web (apache)

Habilitar https (conexion segura en Apache2)


Crear el certificado para el servidor (https), utilizaremos OpenSSL para generar la clave y el certificado para la conexion segura de apache (https) Openca, no puede trabajar con http.

Los certificados los voy a crear en /etc/apache2/

Creamos el .key (la clave del certificado)
openssl genrsa -des3 -out clave.key 2048

Creamos la peticion .csr (peticion de certificado)
openssl req -new -key clave.key -out peticion.csr

Creamos el certificado.
openssl x509 -req -days 365 -sha256 -in peticion.csr -signkey clave.key -out certificado.crt


Teniendo la clave (.key) y el certificado (.crt) habilitamos el modulo ssl de Apache
a2enmod ssl

Deshabilitar sitio por defecto de apache2:(Opcional)
a2dissite 000-default

Habilitar sitio: ssl
a2ensite default-ssl


Recuerden hacer los respectivos reload y force-reload al apache
Nota: Adecuar el sitio default-ssl para que tome los certificados creados y la conexion sea https, estas 2 lineas deben activarla con la ruta del certificado y la clave:
SSLCertificateFile /etc/apache2/certificado.crt
SSLCertificateKeyFile /etc/apache2/clave.key

INGRESO A OPENCA


Hay un pequeño detalle con los reedireccionamientos de los index de las aplicaciones. Para ello el contenido de /var/www/cgi-bin/

lo copie en /var/www/cgi-bin/pki (deben crear la carpeta pki)

sitio de defaul-ssl quedo asi en el bloque de configuracion:
DocumentRoot /var/www/openca
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/cgi-bin/pki>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory “/var/www/cgi-bin/”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

Los link para ingresar son:
Para AC:

https://gfif.udea.edu.co/pki/ca(external link)

Para AR:

https://gfif.udea.edu.co/pki/ra(external link)

Para Node:

https://gfif.udea.edu.co/pki/node(external link)

Para LDAP:

https://gfif.udea.edu.co/pki/ldap(external link)

Para BACTH:

https://gfif.udea.edu.co/pki/batch(external link)

Para PUB: (Publica)

https://gfif.udea.edu.co/pki/pub(external link)




Inicio de OpenCA:

Iniciar la Base de Datos: Logueados en el sistema CA

https://gfif.udea.edu.co/pki/ca(external link)



Deben Inicializar la BBdd para que se creen las tablas en la bd Openca



Una vez iniciada la BBDD deben verificar que las tablas fueron creadas:

mysql> show tables;
+——————————————————+ | Tables_in_openca |
+——————————————————+ | ca_certificate |
| certificate |
| crl |
| crr |
| messages |
| request |
| user |
| user_data |
+——————————————————+ 8 rows in set (0.00 sec)
Crea 8 tablas en la base de datos Openca.

Lo demas es interactuar con la aplicacion Web, crear la RA, etc.

La guía la he seguido 2 veces y funciona bien, no deben tener problemas si sigues los pasos con precisión, cualquier observación o corrección que quieran aportar sera bien recibida.

Recuerden que el tema de certificados se basa en 3 pasos: clave (.key), petición (.csr), certificado (cst, pem, p12, etc)

Basado en http://jpertuz.wordpress.com/pki-con-openssl/(external link)

Algunos posibles errores

En el ra
Error Code: 6251043
 	[initServer:314] Aborting connection - you are using a too short symmetric keylength ().

Editamos

nano /etc/apache2/sites-enabled/default-ssl


añadimos en la sección de configuración SSL

SSLOptions +StdEnvVars


Compilando openca-base

Building (Net::SSLeay::136) ... ERROR::Can not build module
aplicamos el siguiente diff en
/usr/local/openca/openca-base-1.3.0/src/ext-modules/Net-SSLeay-1.40/


diff -ur a/src/Makefile b/src/Makefile
--- a/src/Makefile      2008-10-07 23:13:13.000000000 +0200
+++ b/src/Makefile      2012-09-19 13:06:21.000000000 +0200
@@ -7,7 +7,6 @@
 
 COMMON_DIR = common
 MODULE_DIR = modules
-EXT_MODULE_DIR = ext-modules
 OCSPD_DIR  = ocspd
 SCEP_DIR   = scep
 OPENCA_SV  = openca-sv
@@ -17,7 +16,6 @@
 SUBDIRS = \
        $(COMMON_DIR)   \
        $(MODULE_DIR)   \
-       $(EXT_MODULE_DIR) \
        $(SCRIPT_DIR)   \
        $(WEB_DIR)
 
@@ -48,11 +46,9 @@
        @if [ $(package_build) != "yes" ]; then \
                echo installing modules because it is not a package build; \
                $(MAKE) $(MODULE_DIR) SUBTARGET=install; \
-               $(MAKE) $(EXT_MODULE_DIR) SUBTARGET=install; \
        else \
                echo not installing modules because it is a package build; \
                $(MAKE) $(MODULE_DIR) SUBTARGET=install; \
-               $(MAKE) $(EXT_MODULE_DIR) SUBTARGET=install; \
        fi
 
 #                      $(MAKE) $(OPENCA_SV) SUBTARGET=install; \
@@ -68,7 +64,6 @@
 
 install-modules:
        @$(MAKE) $(MODULE_DIR) SUBTARGET=install
-       @$(MAKE) $(EXT_MODULE_DIR) SUBTARGET=install
 
 test clean distclean::
                $(MAKE) $(SUBDIRS) SUBTARGET=$@