Dev /

InstallazioneOpenCA

In questa pagina, dopo aver riassunto i passi necessari alla installazione di OpenCA 0.9.3-rc1 su di una Ubuntu 7.10, proseguiamo con l'esperienza di post-installazione, ed illustriamo casi tipici di utilizzo

Installazione di OpenCA

  • verifichiamo che i prerequisiti siano soddisfatti
  • configuriamo e installiamo le interfacce online:
    1. ./configure --with-httpd-user=www-data --with-httpd-group=www-data --with-httpd-url-prefix=/openca --with-node-prefix=online
    2. make; make test; make install-online
    3. editiamo /usr/local/OpenCA/etc/config.xml
      • se usiamo postfix anzichè sendmail, rimuoviamo l'opzione -n, perché incompatibile
    4. eseguiamo /usr/local/OpenCA/etc/configure_etc.sh
    5. proteggiamo la configurazione ottenuta fin qui: chmod 000 servers/*.conf*
  • ora tocca alle interfacce off-line:
    1. ./configure --with-httpd-user=www-data --with-httpd-group=www-data --with-httpd-url-prefix=/openca --with-node-prefix=offline; make; make test; make install-offline
    2. ri-editiamo /usr/local/OpenCA/etc/config.xml in modo conforme al precedente
    3. editiamo configure_etc.sh in modo che analizzi solo le directory /usr/local/OpenCA/etc /usr/local/apache/htdocs/ca /usr/local/apache/htdocs/offline
    4. eseguiamo configure_etc.sh
    5. ripristiniamo i precedenti diritti chmod 640 servers/*.conf*
    6. modifichiamo etc/menu.xml come indicato nella documentazione, duplicando la sezione dell'interfaccia offline, e re-impostando i path per i componenti on-line
  • lanciamo il componente demone con ./openca_start, e verifichiamo con ps la presenza di due processi con quel nome

Configurazione di Apache

I prefissi utilizzati durante la installazione comportano la configurazione del server Apache mediante le direttive

ScriptAlias /openca/cgi-bin/ /usr/local/apache/cgi-bin/
Alias /openca "/usr/local/apache/htdocs"

mentre la directory /usr/local/apache/cgi-bin deve essere configurata in modo conforme a quelle per i cgi. Inoltre, occorre configurare un server virtuale sul quale abilitare il protocollo https, seguendo ad esempio queste linee guida, che specializziamo raccomandando l'inserimento delle direttive

SSLOptions +StdEnvVars #esporta le variabili di ambiente necessarie al CGI di OpenCA
SSLCACertificateFile /etc/apache2/ssl/ca-cert.pem #per autenticare i clients
SSLCertificateFile /etc/apache2/ssl/ra-cert.pem #per autenticare apache

Il primo dei certificati indicati è quello creato durante la fase di inizializzazione della CA, e viene usato da apache per verificare le firme inviate dai clients (browser) i cui certificati sono firmati dalla CA. Il secondo, è quello generato subito dopo, ovvero il certificato usato da apache per autenticarsi presso i clients che lo visitano.

Inizializzazione della Certification Authority

Visitiamo l'interfaccia CA, ed eseguiamo i passaggi previsti visitando il link Generale/Inizializzazione per inizializzare il database, generare la coppia di chiavi della CA, ed il suo certificato auto-firmato. Il certificato della CA ora generato

  • può essere reperito presso /usr/local/OpenCA/var/crypto/cacerts/cacert.pem
  • deve essere fornito ad apache, e
  • deve essere installato presso i clients che intendono accedere alle interfacce di amministrazione di openca.

Quindi, generiamo ed installiamo altri due certificati firmati dalla CA, ossia

  1. quello (ruolo Web server) con cui l'interfaccia web della RA, autenticherà la connessione https
    • una volta generata la richiesta, occorre generare il certificato, scegliendo CSR attive/nuove
    • una volta generato il certificato, questo può essere esportato scegliendo Informazioni/certificati/valido, richiedendo di allegare anche la coppia di chiavi, in formato mod_ssl. In alternativa, il certificato può essere reperito direttamente nel proprio filesystem, nella directory /usr/local/OpenCA/var/crypto/certs
    • una volta in possesso del certificato, questo può essere usato per autenticare il server Apache che ospita l'interfaccia alla RA:
      • il certificato del server completo di chiavi, viene copiato nella directory /etc/apache2/openssl, con nome ra-cert.pem, e
      • nel file di configurazione del server virtuale che risponde in HTTPS, si rimuove la direttiva SSLCertificateKeyFile, e si asserisce SSLCertificateFile /etc/apache2/ssl/ra-cert.pem
      • si ri-lancia apache con sudo /etc/init.d/apache2 restart, indicando anche la passphrase usata al momento della richiesta del certificato
      • se tutto è andato bene, si può richiedere (Informazioni/Certificati/valido) di rimuovere la chiave privata dal database
  2. quello (di tipo client) con cui l'amministratore si autenticherà presso la RA. Occorre usare lo stesso browser con il quale interagiremo successivamente con l'RA
    • scegliere Generale/inizializzazione/crea l'amministratore iniziale
    • immettere i propri dati, ed indicare un ruolo di CA Operator
    • generare il certificato
    • visitare Informazioni/certificati/valido per importare il certificato nel proprio browser:
      • richiedere il download di Certificato e Coppia di Chiavi in formato PKCS#12
      • importare il certificato nel Browser. Ad esempio, con Firefox:
        • scegliere Modifica/preferenze/Avanzate/cifratura/mostra certificati/personali/importa,
        • indicare il nome di file con cui è stato salvato il certificato scaricato
        • immettere la passphrase indicata al momento della sua creazione
    • se tutto è andato bene, si può richiedere (Informazioni/Certificati/valido) di rimuovere la chiave privata dal database

A questo punto, tutto è pronto per emettere nuovi certificati firmati!!

Richiesta di un nuovo certificato

A questo scopo, un nuovo richiedente deve visitare l'interfaccia pubblica, dove scegliendo (Utente/chiedi certificato) si può formalizzare una Certificate Signing Request (CSR), scegliendo tra

  • chiedere un certificato adatto al suo browser, in modo da delegare a quest'ultimo il compito di generare una chiave privata. Questo tipo di certificato, potrà essere importato nel browser stesso, e quindi usato per autenticarlo in un ruolo di client;
  • chiedere un certificato per Server, in modo da poter procedere all'upload di una CSR già pronta, generata dall'amministratore di un server, congiuntamente ad una coppia di chiavi;
  • effettuare una richiesta di base, in cui la generazione della coppia di chiavi è delegata ad OpenCA, ed il richiedente può specificare il ruolo per il quale si intende richiedere il certificato.

Quindi, il richiedente deve ricordarsi della passphrase che ha scelto in questa fase, in modo da poterlo re-immettere al momento di ritirare il certificato firmato. Ma.. quando potrà farlo?

Accesso alla Registration Autority

La CSR appena formalizzata, deve essere approvata da un Operatore della Registration Authority, e quindi inviata alla CA, in modo che quest'ultima emetta il certificato firmato. Per realizzare la prima fase, occorre visitare l'interfaccia della RA, dove si accede alla lista delle CSR giacenti.

Attribuzione di fiducia

L'accesso via https all'interfaccia della RA permette l'autenticazione crittografica reciproca tra l'interfaccia ed il browser dell'operatore, a patto che

Mentre del secondo punto ci siamo già occupati, il primo punto si ottiene visitando l'interfaccia pubblica: si aprirà una finestra del browser, che ci notifica l'impossibilità di verificare l'affidabilità del sito. Scegliamo di accettare il certificato limitatamente alla sessione attuale, e quindi dirigiamoci su Dettagli della CA/scarica certificato, e richiediamo il formato CRT. Si apre allora una nuova finestra, che ci chiede per quali utilizzi dare fiducia alla CA: scegliamo le prime due caselle ossia identificazione di siti web, e identificazione di utenti di posta; quest'ultima scelta, è necessaria per permettere la firma digitale dell'approvazione delle CSR.

Possiamo verificare la corretta importazione del certificato della CA, chiudendo il browser, riaprendolo, e visitando di nuovo l'interfaccia pubblica: non compare più nessuna finestra di notifica.

Approvazione della richiesta

Una volta raggiunta interfaccia della RA, l'operatore

  • individua la CSR che intende approvare tra quelle nuove o pendenti,
  • verifica la veridicità dei dati immessi (ad esempio, telefonando all'individuo, oppure richiedendogli di presentarsi con i documenti)
  • clicca su Approva la richiesta: si apre una nuova finestra di notifica che ci chiede la passphrase necessaria a sbloccare la chiave privata del certificato di Operatore, ossia quello generato in fase di inizializzazione della CA, ed importato come descritto sopra.

Emissione del certificato

L'operatore della CA deve

  • recarsi presso l'interfaccia della CA
  • scegliere le CSR attive/approvate
  • scegliere genera certificato

Ritiro del certificato

Il richiedente del certificato deve

  • recarsi presso l'interfaccia pubblica
  • scegliere Certificati/valido, rintracciare quello che aveva richiesto, ed a seconda del suo tipo di richiesta:
    • certificato client per autenticazione del browser: si può cliccare su Scarica certificato, che sarà installato automaticamente
    • certificato server di cui si possiede già la chiave privata: si può scaricare il solo certificato, ad es. in formato PEM
    • certificato server per il quale non si possiede la chiave privata: occorre scaricarlo completo delle chiavi, ad esempio in formato pkcs#12. In questo caso verranno chieste due password, di cui la prima è la passphrase scelta al momento della generazione della richiesta, mentre invece la seconda deve essere impostata dall'operatore della RA, che ce la deve comunicare.
      • il file in formato pkcs12 deve ora essere convertito in una file in formato pem, in modo da poterlo fornire al server. Per questo, si esegue il comando openssl pkcs12 -in certificato.p12 -out certificato.pem. Ci verranno chieste due passphrase: laprima è quella che abbiamo scelto al momento della richiesta, e la seconda è quella con cui verrà cifrata la chiave privata contenuta nel nuovo .pem.

Revoca di un certificato

Effettuata d'ufficio

In questo caso, occorre

  • recarsi presso l'RA, scegliere Informazioni/certificati/valido, entrare nella pagina del certificato da revocare, e richiederne la revoca
  • visitare Informazioni/richieste di revoca/nuove, entrare nella pagina della richiesta da approvare, ed approvarla
  • recarsi presso la CA, scegliere Operazioni comuni/richieste di revoca approvate, ed eseguire la revoca
  • visitare Operazioni comuni/emetti una nuova CRL, e procedere ad emettere una nuova lista di revoca

Richiesta dall'intestatario

Esecuzione al boot

Quando OpenCA finalmente inizia a funzionare come vorremmo, possiamo mandarla in esecuzione ogni volta che riaccendiamo il computer

  • copiando il file /usr/local/OpenCA/etc/openca_rc in /etc/init.d/
  • creando un link simbolico da /etc/init.d/openca_start alle directory /etc/rcN.d. Per quest'ultimo passo, è consigliabile usare un tool grafico di configurazione, come ad esempio (con Ubuntu) il Boot Up Manager BUM

Le interfacce usate per SapienFed

La nostra federazione SIP? usa queste interfacce:




Pagine che puntano a questa: