Dopo le svariate prove d’installazione effettuate, seguendo varie guide trovate in rete, da un paio di queste sono riuscito a farne una che come risultato finale portasse ad una installazione valida.
Tutte le prove sono state condotte su una macchina VMware con la distribuzione Debian 4r0 scaricabile da questo link
I repository dei pacchetti che ho usato sono quelli disponibili nella distribuzione. Occorre effettuare un aggiornamento degli stessi prima di cominciare con l’installazione dei pacchetti necessari, utilizzando il comando apt-get update.
Dato che alcuni software saranno compilati da sorgenti, dobbiamo predisporre il sistema con i pacchetti adeguati:
apt-get install g++ gcc make libssl-dev ncftp ftp unzip bzip2 zip nmap ssh
OpenCA richiede come prerequisiti alcuni pacchetti perl, necessari per il suo funzionamento:
apt-get install libwww-perl libxml-perl libxml-regexp-perl libdbi-perl \ perl perl-modules libldap2 libldap2-dev libdbd-mysql-perl \ libauthen-sasl-perl libx500-dn-perl libcgi-session-perl \ libconvert-asn1-perl libdigest-md2-perl libdigest-md4-perl \ libdigest-sha1-perl libio-socket-ssl-perl libio-stringy-perl \ libmime-lite-perl libmime-perl libmailtools-perl libnet-server-perl \ liburi-perl libxml-twig-perl libintl-perl libnet-ldap-perl \ libdigest-hmac-perl libgssapi-perl dbishell libintl-xs-perl \ libxml-sax-perl libcompress-zlib-perl libunicode-map8-perl \ libunicode-string-perl libterm-readline-gnu-perl \ libterm-readline-perl-perl libhtml-format-perl libtie-ixhash-perl \ libxml-xpath-perl perl-doc
Dato che la gestione/configurazione/richiesta dei certificati avverrà tramite interfaccia web, occorre installare anche un webserver (Apache) e per sicurezza dei dati scambiati, abiliteremo il protocollo SSL. Per comodità mia ho aggiunto anche il modulo php5, che non è comunque necessario al funzionamento di OpenCA.
apt-get install libapache-mod-perl libapache-mod-ssl libapache-mod-php5 \ php5-mysql php5-gd php-pear xml-core libft-perl php5-dev libgd-tools
Dobbiamo installare e configurare Apache in maniera tale da usare i moduli citati prima.
apt-get install apache dpkg-reconfigure apache (Selezioniamo i moduli mod_ssl, mod_perl, mod_php5)
Per la registrazione delle informazioni personali e dei certificati, ci appoggiamo ad un db MySQL.
apt-get install mysql-server
Adesso possiamo procedere con l’installazione di OpenCA, che avverrà tramite i suoi sorgenti, Pertanto occorre scaricarli ed estrarli. Per comodità saranno creati due file eseguibili per automatizzare le procedure di installazione.
cd /tmp wget https://www.openca.org/alby/download?target=openca-0.9.3-rc1.tar.gz --no-check-certificate tar xvfz openca-0.9.3-rc1.tar.gz cd openca-0.9.3-rc1 touch config_ra touch config_ca chmod 755 config_ra chmod 755 config_ca
Creiamo il primo file per automatizzare l’installazione.
nano config_ra
e, all’interno di esso, inseriamo:
#!/bin/sh ./configure --prefix=/usr/local/openca --with-web-host=localhost \ --with-httpd-user=www-data --with-httpd-group=www-data \ --with-ext-prefix=/usr/local/openca.0.9.3 --with-htdocs-fs-prefix=/var/www/ \ --with-cgi-fs-prefix=/usr/lib/cgi-bin --with-ca-organization=TEST \ --with-ca-locality=Palermo --with-ca-country=IT \ --with-module-prefix=/usr/local/openca/modules --enable-dbi --disable-db \ --disable-rbac --with-hierarchy-level=ra \ --with-service-email-account=alessandro.pensato@areanetworking.it \ --with-db-type=mysql --with-db-name=openca --with-db-port=3306 \ --with-db-user=openca --with-db-passwd=openca make make install-ra make install-pub make install-node
Ora possiamo eseguirlo.
./config_ra
Creiamo il secondo file per automatizzare l’installazione.
nano config_ca
con all’interno:
#!/bin/sh ./configure --prefix=/usr/local/openca --with-web-host=localhost \ --with-httpd-user=www-data --with-httpd-group=www-data \ --with-ext-prefix=/usr/local/openca.0.9.3 --with-htdocs-fs-prefix=/var/www/ \ --with-cgi-fs-prefix=/usr/lib/cgi-bin --with-ca-organization=TEST \ --with-ca-locality=Palermo --with-ca-country=IT \ --with-module-prefix=/usr/local/openca/modules --enable-dbi --disable-db \ --disable-rbac --with-hierarchy-level=ca \ --with-service-email-account=alessandro.pensato@areanetworking.it \ --with-db-type=mysql --with-db-name=openca --with-db-host=localhost \ --with-db-port=3306 --with-db-user=openca --with-db-passwd=openca make make install-ca make install-node
Eseguiamo anche questo:
./config_ca
Come detto in precedenza, useremo MySQL per memorizzare i dati personali e dei certificati, quindi occorre creare i database.
mysql -uroot -p create database openca; create database openra; grant all privileges on openca.* to openca@localhost identified by 'openca'; grant all privileges on openra.* to openra@localhost identified by 'openra'; exit;
Modifichiamo il file di configurazione di OpenCA. I relativi campi devono essere come i seguenti.
nano /usr/local/openca/OpenCA/etc/config.xml
ca_organization TEST ca_locality Palermo ca_country IT service_mail_account [email protected] httpd_host localhost httpd_port :443 dbmodule DBI db_type mysql db_name openca db_host localhost db_port 3306 db_user openca db_passwd openca
Finaliziamo la configurazione di OpenCA e predisponiamo il sistema alla sua esecuzione ad ogni boot.
cd /usr/local/openca/OpenCA/etc/ ./configure_etc.sh cp /usr/local/openca/OpenCA/etc/openca_rc /etc/init.d/ cd /etc/init.d/ update-rc.d openca_rc defaults ./openca_rc start
Configuriamo Apache per utilizzare i certificato SSL e riavviamolo
mkdir /etc/apache/ssl cd /etc/apache/ssl openssl req -x509 -newkey rsa:2048 -keyout cakey.pem -days 3650 -out cacert.pem -nodes
nano /etc/apache/httpd.conf
Port 443 SSLEngine On SSLOptions +StdEnvVars SSLCertificateFile /etc/apache/ssl/cacert.pem SSLCertificateKeyFile /etc/apache/ssl/cakey.pem
/etc/init.d/apache stop /etc/init.d/apache start rm /var/www/index.html
Adesso possiamo accedere all’inidizizzo https://localhost/ca per inizializzare la nostra CA. I dati per il login sono:
- username: root
- password: root