Installazione di OpenCA su Debian
Premessa
Dopo le svariate prove d’installazione effettuate, seguendo varie guide trovare 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
Installazione
I repositori 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 un webserver (Apache) e per sicurezza dei dati scambiati, abiliteremo il protocollo SSL. Per comodità mia ho aggiunto anche il modulo php5, che non è 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
#!/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=porkyHTTP --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=alepensato@virgilio.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
#!/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=porkyHTTP --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=alepensato@virgilio.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
Ora possiamo eseguirlo.
./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;
Configurazione
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 porkyHTTP
ca_locality Palermo
ca_country IT
service_mail_account alepensato@virgilio.it
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 Apanche 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
Listen 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


