La connessione di rete utilizzata non sarà protetta fino a quando non viene creata una chiave per le comunicazioni in rete sicure e non sarà ricevuto un certificato da un'autorità di certificazione (CA) sul server. Utilizzare IKEYMAN per creare i database di chiavi, le coppia di chiavi pubblica-privata e le richieste di certificato. Se si sta operando come CA, è possibile utilizzare IKEYMAN per creare i certificati di firma automatica. Se si operare come CA per una rete web privata, si ha la possibilità di utilizzare il programma di utilità CA del server per creare ed emettere certificati firmati ai cliente e ai server nella rete privata.
E' possibile utilizzare IKEYMAN per le attività di configurazione relative alla creazione e alla gestione della chiave pubblica e privata. Non è possibile utilizzare IKEYMAN per le operazioni di configurazione che aggiornano il file di configurazione del server, httpd.conf. Per le opzioni che aggiornano il file di configurazione del server, è necessario utilizzare l'IBM Administration Server.
Linux per S/390: Utilizzare CLI IKEYCMD per eseguire questo tipo di funzioni in IKEYMAN. Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD.
In questa appendice sono contenute informazioni dettagliate relative alle attività che è possibile eseguire con il programma di utilità IKEYMAN. Queste informazioni non spiegano come configurare le opzioni relative alla sicurezza che richiedono gli aggiornamenti sul file di configurazione del server.
IKEYMAN GUI è a base Java; per l'esecuzione occorre utilizzare JDK o JRE. I livelli JDK minimi per il supporto IKEYMAN sono:
In Windows e Solaris, le librerie GSKit installate come parte del componente SSL includono JRE. Non occorre specificare altre impostazioni di ambiente su queste piattaforme. Per eseguire il programma in ambiente AIX, HP o Linux, e per utilizzare un altro JDK su un sistema Solaris, impostare l'ambiente del sistema seguendo le istruzioni riportate di seguito:
EXPORT JAVA_HOME=il nome del percorso completo della directory home di JDK
EXPORT PATH = <il nome del percorso completo della directory home di JDK> /jre/sh:<il nome del percorso completo della directory home di JDK>/sh:$PATH
EXPORT PATH=$IKEYMAN_HOME/bin:$PATH
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Per eseguire IKEYMAN su Linux per S/390, impostare le variabili di ambiente per utilizzare l'interfaccia riga comandi IKEYCMD nel seguente modo:
EXPORT PATH=/opt/IBMJava/bin:$PATH
EXPORT CLASSPATH=/usr/local/ibm/gsk/classes/cfwk.zip:/usr/local/ibm/ gsk/classes/gsk4cls.jar:$CLASSPATH
Una volta completata l'operazione, IKEYCMD deve poter essere eseguito da qualsiasi directory. Per eseguire un comando IKEYCMD, utilizzare la seguente sintassi:
java com.ibm.gsk.ikeyman.ikeycmd <command>Nota: JRE può essere sostituito per Java, a seconda se viene utilizzato JRE o JDK. Esempio:
jre com.ibm.gsk.ikeyman.ikeycmd <command>
Ciascun IKEYCMD (eccetto quello per la creazione del database) richiede che vengano specificati il database di chiavi e la password. Questa è un'operazione obbligatoria poiché il database viene aperto con qualsiasi comando. Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD.
Nella seguente sezione viene illustrato come utilizzare IKEYMAN o CLI IKEYCMD.
Per avviare l'interfaccia grafica per l'utente di IKEYMAN:
Nota: se IKEYMAN viene avviato per creare un nuovo file di database di chiavi, tale file verrà memorizzato nella directory da cui viene avviato IKEYMAN.
La connessione di rete utilizzata non sarà protetta fino a quando non viene creata una chiave per le comunicazioni in rete sicure e non sarà ricevuto un certificato da un'autorità di certificazione (CA) sul server. Utilizzare IKEYMAN (o IKEYCMD su Linux per S/390) per creare un file di database di chiavi, una coppia di chiavi pubblica/privata e una richiesta di certificato. Dopo aver ricevuto il certificato firmato da una CA, utilizzare IKEYMAN (o IKEYCMD su Linux per S/390) per ricevere il certificato nel database di chiavi in cui è stata creata la richiesta originale di certificato.
Questa sezione fornisce una rapida panoramica delle attività di IKEYMAN e IKEYCMD e una descrizione dettagliata delle attività più comuni.
Le attività che è possibile eseguire utilizzando l'interfaccia
utente IKEYMAN e IKEYCMD vengono riepilogate nella tabella seguente.
Attività di IKEYMAN e IKEYCMD | Per istruzioni consultare la sezione: |
---|---|
Creazione di un nuovo database di chiavi e della relativa password |
|
Creazione di una nuova coppia di chiavi e una richiesta di certificato |
|
Crea un'autocertificazione |
|
Esportare una chiave in un altro database o in un file PKCS12 |
|
Importare una chiave da altro database o da un file PKCS12 |
|
Fornire un elenco di autorità di certificazione (CA) e di richieste di certificato |
|
Aprire un database di chiavi |
|
Ricevere un certificato firmato da una CA in un database di chiavi |
|
Visualizzare la chiave predefinita in un database di chiavi |
|
Memorizzare il certificato root di una CA |
|
Memorizzare la password del database codificata in un file stash |
|
Un database di chiavi è un file utilizzato dal server per memorizzare una o più coppie di chiavi e certificati. E' possibile utilizzare un solo database di chiavi per tutte le coppie di chiavi e i certificati oppure creare più database.
Per creare un nuovo database:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. E' richiesta una password per ogni operazione del database di chiavi. Anche se un database sslight richiede che venga specificata una password, questa può essere una stringa NULL (specificata come ""). Per creare un nuovo database di chiavi utilizzando l'interfaccia riga comandi IKEYCMD, immettere il seguente comando:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -create -db <filename>.kdb -pw <password> -type cms -expire <days> -stash
Quando viene specificata l'opzione -stash durante la creazione del database di chiavi, la password viene nascosta in un file con il seguente nome file:
<nome file del database di chiavi>.sthAd esempio, se il database che viene creato è keydb.kdb, il nome file sarà keydb.sth.
Durante la creazione di un nuovo database di chiavi, specificare una password. Questa password è importante, in quanto il suo ruolo è di proteggere la chiave privata. Tale chiave è l'unica in grado di firmare documenti o di decodificare messaggi codificati utilizzando la chiave pubblica. Si consiglia di cambiare spesso la password del database.
Per specificare la password, utilizzare le istruzioni riportate di seguito:
Nota: | Tenere traccia delle date di scadenza per la password. Se la password scade, viene scritto un messaggio nella registrazione degli errori. Il server sarà avviato, ma se la password è scaduta la connessione di rete non sarà sicura. |
Per modificare la password del database:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Per modificare la password del database, immettere:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -changepw -db <filename> .kdb -pw <password> -new_pw <new_password> -expire <days> -stash
L'impostazione di configurazione iniziale del nome del database di chiavi è key.kdb. Se viene utilizzato key.kdb come nome del database di chiavi predefinito, non è necessario registrare il database con il server. Il server utilizzerà l'impostazione iniziale contenuta nell'istruzione KeyFile nel file di configurazione. Se key.kdb non viene utilizzato come nome predefinito, o se vengono creati ulteriori database di chiavi, sarà necessario registrare tali database.
Le coppie di chiavi e le richieste di certificato vengono memorizzate in un database di chiavi. Per creare una una coppia di chiavi pubblica/privata e una richiesta di certificato, procedere come segue:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Per creare una una coppia di chiavi pubblica/privata e una richiesta di certificato, procedere come segue:
java com.ibm.gsk.ikeyman.ikeycmd -certreq -create -db <db_name>.kdb -pw <password> -size <1024 | 512> -dn<distinguished_name> -file <filename> -label <label>dove:
"CN=weblinux.raleigh.ibm.com,O=ibm,OU=IBM HTTP Server,L=RTP,ST=NC,C=US"
java com.ibm.gsk.ikeyman.ikeycmd -certreq -list -db <filename> -pw <password>E' necessario controllare l'etichetta elencata appena creata.
Generalmente sono necessarie due o tre settimane affinché il certificato venga prodotto da una CA nota. Durante questo periodo, è possibile utilizzare IKEYMAN per la creazione di un'autocertificazione del server per abilitare le sessioni SSL tra i client e i server. E' possibile, inoltre, eseguire questa procedura se si agisce come CA per una rete Web privata.
Per creare un'autocertificazione, procedere come segue:
Linux per S/390: Per ulteriori informazioni su
IKEYCMD, consultare la sezione Utilizzo di
CLI (Command Line Interface) IKEYCMD. Per creare un'autocertificazione, procedere come segue:
Immettere il seguente comando:
java com.ibm.gsk.ikeyman.ikeycmd -cert -create -db <db_name>.kdb -pw <password> -size <1024 | 512> -dn<distinguished name> -label <label> -default_cert <yes or no>dove:
"CN=weblinux.raleigh.ibm.com,O=ibm,OU=IBM HTTP Server,L=RTP,ST=NC,C=US"
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD.
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD.
Per visualizzare un elenco di autorità di certificazione (CA) sicure in un database di chiavi, procedere come segue:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Per visualizzare un elenco di autorità di certificazione (CA) sicure in un database di chiavi, procedere come segue:
java com.ibm.gsk.ikeyman.ikeycmd -cert -list CA -db <dbname>.kdb -pw <password> -type cms
Per aprire un database di chiavi esistente:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Non rappresenta un'apertura esplicita del database di chiavi. Per ogni comando, vengono specificate le opzioni del database e della password e queste specifiche forniscono le informazioni necessarie per utilizzare un database di chiavi.
Seguire questa procedura per ricevere un certificato inviato via posta elettronica da un'autorità di certificazione (CA) indicata come sicura sul server. Per impostazione predefinita, i seguenti certificati CA sono memorizzati sul server e indicati come certificati CA sicuri:
L'Autorità di certificazione può inviare più di un certificato. Oltre a certificare per il proprio server, l'Autorità di certificazione può anche inviare ulteriori certificati di firma o certificati intermedi. Ad esempio, Verisign include un certificato CA intermedio quando invia un certificato Global Server ID. Prima di ricevere il certificato del server, occorre prima ricevere tutti gli ulteriori certificati CA intermedi. Seguire le istruzioni contenute in Memorizzazione di un certificato CA per ricevere i certificati CA intermedi.
Nota: Se la CA che emette il certificato non è una CA indicata come sicura nel database di chiavi, è necessario memorizzare il certificato della CA, quindi indicare quella CA come sicura. A questo punto, è possibile ricevere il certificato nel database. Non è possibile ricevere un certificato proveniente da una CA non sicura. Per istruzioni più dettagliate, consultare la sezione Memorizzazione di un certificato CA.
Per ricevere un certificato firmato da una CA in un database di chiavi:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Per ricevere un certificato firmato da una CA in un database di chiavi, immettere:
java com.ibm.gsk.ikeyman.ikeycmd -cert -receive -file <filename> -db <db_name> .kdb -pw <password> -format <ascii | binary> -default_cert <yes | no>
Per visualizzare la voce relativa alla chiave del database predefinita:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Per visualizzare la voce relativa alla chiave del database predefinita:
java com.ibm.gsk.ikeyman.ikeycmd -cert -getdefault -db <dbname>.kdb -pw <password>
Per memorizzare un certificato proveniente da una CA non sicura, procedere come segue:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Per memorizzare un certificato proveniente da una CA non sicura, procedere come segue:
java com.ibm.gsk.ikeyman.ikeycmd -cert -add -db <filename>.kdb -pw <password> -label <label> -format <ascii | binary> -trust <enable |disable> -file <file>dove:
Per usufruire di connessioni sicure, memorizzare la password del database codificata in un file stash.
Per memorizzare la password durante la creazione di un database, procedere come segue:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Per memorizzare la password durante la creazione di un database, procedere come segue:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -create -db <path_to_db>/<db_name>.kdb -pw <password> -type cms -expire <days> -stash
Per memorizzare la password dopo aver creato un database, procedere come segue:
Linux per S/390: Per ulteriori informazioni su IKEYCMD, consultare la sezione Utilizzo di CLI (Command Line Interface) IKEYCMD. Per memorizzare la password dopo aver creato un database, procedere come segue:
java com.ibm.gsk.ikeyman.ikeycmd -keydb -stashpw -db <db_name>.kdb -pw <password>
Su Linux per S/390, IKEYCMD, l'interfaccia riga comandi Java per IKEYMAN, fornisce le opzioni necessarie per creare e gestire le chiavi, i certificati e le richieste di certificazione. Se si sta operando come CA, è possibile utilizzare IKEYCMD per creare i certificati di firma automatica. Se si opera come CA per una rete web privata, si ha la possibilità di utilizzare il programma di utilità CA del server per creare ed emettere certificati firmati ai cliente e ai server nella rete privata.
E' possibile utilizzare IKEYCMD per le attività di configurazione relative alla creazione e alla gestione della chiave pubblica e privata. Non è possibile utilizzare IKEYCMD per le operazioni di configurazione che aggiornano il file di configurazione del server, httpd.conf. Per le opzioni che aggiornano il file di configurazione del server, è necessario utilizzare l'IBM Administration Server.
IKEYCMD utilizza le richieste della riga comandi e Java, abilitando l'esecuzione degli script per le attività IKEYMAN.
La sintassi CLI Java è:
java [-Dikeycmd.properties=<properties_file>] com.ibm.gsk.ikeyman.ikeycmd <object> <action> [options]
dove:
-Dikeycmd.properties |
|
Object può essere una delle seguenti voci:
-keydb |
|
-cert |
|
-certreq |
|
-help |
|
-version |
|
Action è l'azione specifica da eseguire sull'oggetto e options sono le opzioni, obbligatorie e facoltative, specificate per la coppia oggetto-azione.
NOTE: Le parole chiave object e action devono essere specificate nell'ordine selezionato. Mentre le opzioni possono essere specificate in qualsiasi ordine.
La seguente tabella descrive ogni azione che può essere eseguita su un oggetto specificato.
Oggetto | Azione | Descrizione |
---|---|---|
-keydb | -changepw | Modifica la password per un database di chiavi
|
-convert | Converte il formato del database di chiavi
| |
-create | Crea un database di chiavi
| |
-delete | Cancella il database di chiavi
| |
-stashpw | Nasconde la password di un database di chiavi in un file
| |
-cert | -add | Aggiunge un certificato CA da un file in un database di chiavi
|
-create | Crea un'autocertificazione
| |
-delete | Cancella un certificato CA
| |
details | Fornisce informazioni dettagliate per un determinato certificato
| |
-export | Esporta un certificato personale e la chiave privata associata
da un database di chiavi in un file PKCS#12 o in un altro database di chiavi
| |
-extract | Estrae un certificato da un database di chiavi
| |
-getdefault | Richiama il certificato personale predefinito
| |
-import | Importa un certificato da un database di chiavi o dal file PKCS#12
| |
-list | Elenca tutti i certificati
| |
-modify | Modifica un certificato (NOTA: Correntemente, l'unico campo che può
essere modificato è Certificate Trust)
| |
-receive | Riceve un certificato CA da un file in un database di chiavi
| |
-setdefault | Imposta il certificato personale predefinito
| |
-sign | Esegue la firma di un certificato memorizzato in un file con un certificato
memorizzato in un database di chiavi e memorizza il certificato firmato in un file
| |
-certreq | -create | Crea una richiesta di certificato
|
-delete | Cancella una richiesta di certificato da un database
| |
-details | Fornisce informazioni dettagliate per una richiesta di certificato specifica
| |
extract | Estrae una richiesta di certificato da un database in un file
| |
-list | Elenca tutte le richieste di certificato nel database
| |
-recreate | Ricrea una richiesta di certificato
| |
-help | Visualizza le informazioni per il comando IKEYCMD
| |
-version | Visualizza le informazioni sulla versione IKEYCMD
|
La seguente tabella indica le opzioni disponibili sulla riga comandi. Le opzioni vengono elencate come gruppo completo. Tuttavia, l'utilizzo dipende dall'oggetto e dall'azione specificata sulla riga comandi.
Opzione | Descrizione |
---|---|
-db | Il nome percorso completo di un database di chiavi.
|
-default_cert | Imposta il certificato da utilizzare come
certificato predefinito per l'autenticazione del client.
Il valore predefinito è No.
|
-dn | Il nome distinto X.500. Il formato della stringa
tra apici è (sono richiesti solo CN, O e C):
"CN=Jane Doe,O=IBM,OU=Java Development,L=Endicott, ST=NY,ZIP=13760,C=country" |
-encryption | Tipo di codifica utilizzata nel comando per l'esportazione
del certificato (strong o weak).
Il valore predefinito è Strong.
|
-expire | Durata di un certificato o di una
password del database (in giorni). I valori predefiniti sono: 365 giorni per un certificato e 60 giorni per una
password del database.
|
-file | Nome file di un certificato o di una richiesta di certificato
(a seconda dell'oggetto specificato).
|
-format | Formato di un certificato (ascii
per Base64_encoded ASCII o binario per i dati Binary DER). Il valore predefinito è ascii.
|
-label | Etichetta di un certificato o di una richiesta di certificato.
|
-new_format | Nuovo formato del database di chiavi.
|
-new_pw | Nuova password del database.
|
-old_format | Vecchio formato del database di chiavi.
|
-pw | Password per il database di chiavi o per il file PKCS#12.
Consultare la sezione Creazione di un nuovo database di chiavi.
|
-size | Dimensione chiave (512 o 1024). Il valore predefinito è 1024.
|
-stash | Indicatore utilizzato per nascondere la password del database di chiavi in un file.
Se specificato, la password verrà nascosta in un file.
|
-target | File o database di destinazione.
|
-target_pw | Password per il database di chiavi se -target specifica
un database di chiavi. Consultare la sezione Creazione di un nuovo database di chiavi.
|
-target_type | Tipo di database specificato da -target
(vedere -type).
|
-trust | Stato di sicurezza di un certificato CA (enable o disable).
Il valore predefinito è enable.
|
-type | Tipo di database. I valori consentiti sono cms (indica un database di chiavi
CMS), webdb (indica un file di chiavi), sslight (indica una classe SSLight) o
pkcs12 (indica un file PKCS#12).
|
-x509version | La versione del certificato X.509 da creare (1, 2 o 3).
Il valore predefinito è 3.
|
Di seguito è riportato un elenco delle richieste, con i parametri facoltativi specificati in corsivo.
Nota: La richiesta Java, java com.ibm.gsk.ikeyman,iKeycmd, viene omessa da ciascuna richiesta di comando.
-keydb -changepw -db <filename> -pw <password> -new_pw <new_password> -stash -expire <days> -keydb -convert -db <filename> -pw <password> -old_format <cms | webdb> -new_format <cms> -keydb -create -db <filename> -pw <password> -type <cms | sslight> -expire <days> -stash -keydb -delete -db <filename> -pw <password> -keydb -stashpw -db <filename> -pw <password>
-cert -add -db <filename> -pw <password> -label <label> -file <filename> -format <ascii | binary> -trust <enable | disable> -cert -create -db <filename> -pw <password> -label <label> -dn <distinguished_name> -size <1024 | 512> -x509version <3 | 1 | 2> -default_cert <no | yes> -cert -delete -db <filename> -pw <password> -label <label> -cert -details -db <filename> -pw <password> -label <label> -cert -export -db <filename> -pw <password> -label <label> -type <cms | sslight> -target <filename> -target_pw <password> -target_type <cms | sslight | pkcs12> -encryption <strong | weak> -cert -extract -db <filename> -pw <password> -label <label> -target <filename> -format <ascii | binary> -cert -getdefault -db <filename> -pw <password> -cert -import -db <filename> -pw <password> -label <label> -type <cms | sslight> -target <filename> -target_pw <password> -target_type <cms | sslight> -cert -import -file <filename> -type <pkcs12> -target <filename> -target_pw <password> -target_type <cms | sslight> -cert -list <all | personal | CA | site> -db <filename> -pw <password> -type <cms | sslight> -cert -modify -db <filename> -pw <password> -label <label> -trust <enable | disable> -cert -receive -file <filename> -db <filename> -pw <password> -format <ascii | binary> -default _cert <no | yes> -cert -setdefault -db <filename> -pw <password> -label <label> -cert -sign -file <filename> -db <filename> -pw <password> -label <label> -target <filename> -format <ascii | binary> -expire <days>
-certreq -create -db <filename> -pw <password> -label <label> -dn <distinguished_name> -size <1024 | 512> -file <filename> -certreq -delete -db <filename> -pw <password> -label <label> -certreq -details -db <filename> -pw <password> -label <label> -certreq -extract -db <filename> -pw <password> -label <label> -target <filename> -certreq -list -db <filename> -pw <password> -certreq -recreate -db <filename> -pw <password> -label <label> -target <filename>
-help
-version
Per eliminare alcuni dei caratteri digitati nelle richieste CLI Java, è possibile specificare le proprietà dell'utente in un file. Questo file può essere specificato nella richiesta della riga comandi Java utilizzando l'opzione -Dikeycmd.properties. Viene fornito un file delle proprietà, ikeycmd.properties, come esempio per consentire alle applicazioni Java di modificare le impostazioni predefinite per le applicazioni.