Installare e configurare PHPki¶
PHPki è un buon programma per la gestione via web di una infastruttura di PKI semplificata, adeguato alle esigenze di gestione di una realtà di dimensioni medio-piccole.
La procedura di installazione è purtroppo un po' macchinosa, ma una volta installata l'utilizzo dell'applicazione è tutto sommato immediato. Una volta scaricati i sorgenti li si potranno installare (al solito si è scelto /usr/local/share/
) con i seguenti comandi:
cd /usr/local/share/ tar -xvzf ~/phpki-0.80.tar.gz mv phpki-0.80 phpki
In questa installazione iniziale la directory phpki
sarà creata con permessi di scrittura aperti a tutti, per consentire agli script di setup forniti dal pacchetto stesso di scrivere all'interno della stessa la loro configurazione. Dato che questi script sono eseguiti via web per conto di Apache ed il programma non essendo pacchettizzato non sa quale utente utilizzare, la directory deve essere scrivibile da tutti:
root@monk:/usr/local/share# ls -ld phpki/ drwxrwsrwx 8 root users 4096 Nov 15 2005 phpki/
una volta completata la configurazione si dovrà utilizzare lo script secure.sh
per correggere i permessi.
Per accedere alla configurazione usando gli script forniti dal programma occorre anzitutto configurare Apache, faremo comparire la nostra CA sotto /phpki
, utilizzando la seguente direttiva:
Alias /phpki /usr/local/share/phpki/ <Directory /usr/local/share/phpki> DirectoryIndex index.php Options Indexes FollowSymLinks AllowOverride All </Directory>
Una volta inserita la precedente configurazione si potrà puntare il browser su http://www.miosito.it/phpki
per ottenere la pagina di istruzioni, in alto a destra si potrà cliccare sul collegamento Setup per andare sulla pagina di impostazione che richiede tutte le informazioni necessarie.
In particolare andranno indicate la directory dove mantenere i file della Certification Authority ed il file su cui si memorizzeranno gli utenti con accesso alla console amministrativa (che richiede accesso autenticato di Apache), che nel nostro caso sono rispettivamente /var/local/phpki/phpki-store
e /var/local/phpki/phpkipasswd
.
In particolare occorrerà assegnare la proprietà della directory citata all'utente con cui gira Apache, in modo che i file della CA possano essere opportunamente creati al suo interno. Allo stesso modo andrà creato il file di accesso per l'utente amministrativo. Tutto questo va fatto prima di confermare l'esecuzione dello script di setup, altrimenti si avranno degli errori, il tutto si farà con i comandi:
mkdir /var/local/phpki mkdir /var/local/phpki/phpki-store chown www-data /var/local/phpki/phpki-store chmod 700 /var/local/phpki/phpki-store htpasswd -cm /var/local/phpki/phpkipasswd admin chown root.www-data /var/local/phpki/phpkipasswd chmod 640 /var/local/phpki/phpkipasswd
Una volta creata l'infrastruttura per i dati necessari si potrà confermare l'esecuzione della pagina di impostazione, ed eseguire lo script di riordino dei permessi, che chiederà gli ultimi dati necessari:
root@cleis:/usr/local/share/phpki# ./secure.sh This application is designed to be an easy to use "certificate factory" requiring minimum human intervention to administer. It is intended for use within a trusted INTRAnet for the creation and management of x.509 e-mail digital certificates by departmental managers. IT IS NOT INTENDED FOR USE OVER THE INTERNET. This application stores private keys within a sub-directory, making them potentially susceptible to compromise. Extra care has been taken in the design of this application to protect the security of your certificates, on the condition that you INSTALL IT AS THE ROOT USER. However, no software is 100% secure. Enter the location of your PHPki password (i.e. /etc/phpkipasswd): /var/local/phpki/phpkipasswd Enter the user ID your web server runs as [apache]: www-data Enter the group ID your web server runs as [apache]: www-data Enter the IP or subnet address [192.168.0.0/16] which will be allowed access to the user admin module in under ./admin: 127.0.0.1 Working... Done.
Nel caso si utilizzi una distribuzione che usa PHP 5 occorrerà anche modificare il file ca/request_cert.php
che usa una parola chiave come valore di un istruzione case, cosa che comporta un errore di sintassi, la cosa si può fare semplicemente con:
sed -e 's/final/finale/g' ca/request_cert.php > request_cert.php.new mv request_cert.php.new ca/request_cert.php
Aggiornato da Simone Piccardi quasi 14 anni fa · 8 revisions