AutoSScep 1.0 - Guida al file di configurazione A...............Sintassi del file di configurazione B...............Struttura del file di configurazione B.1.............Opzioni Generali B.2.............Dati della(e) Certification Authority B.3.............Dati dei certificati B.3.1...........Estensioni X.509v3 B.3.2...........Valori Ammessi per le estensioni X.509v3 C...............Riassunto comandi principali D...............Valori di default E...............Esempio di configurazione A. Sintassi del file di configurazione Ogni comando viene letto secondo la struttura nomecomando = "valore" Il valore DEVE essere compreso tra doppi apici "" !! Il valore compreso tra apici deve trovarsi sulla stessa riga del comando Sono ammessi spazi prima del nome comando e dopo. Il simbolo # indica una riga di commento I comandi per l'inserimento dei dati di una Certification Authority [CA] (e [/CA] per la chiusura), di un certificato [Certificate] o per le estensioni X509v3 devono essere posti all'inizio della riga. Comandi non riconosciuti vengono segnalati in esecuzione, ma ignorati B. Struttura del file di configurazione Il file di configurazione si divide in tre parti principali: 1. Opzioni generali : tutto ciò che riguarda in generale i certificati e l'esecuzione del programma 2. Dati delle CA (Certification Authority) i dati relativi ad una o più CA 3. Dati dei certificati i dati relativi a ogni singolo certificato B.1. Opzioni generali Nelle opzioni generali vanno indicati OBBLIGATORIAMENTE i seguenti valori - cartella contenente i certificati della CA CADir = "[valore]" - cartella contenente i certificati CertDir = "[valore]" - cartella contenente le chiavi private KeyDir = "[valore] n.b. è consigliabile inserire i percorsi assoluti Opzionalmente si può indicare - il numero dei giorni ammessi prima della scadenza di un certificato ( di default 7 ) DaysBeforeExpire = "[valore]" - il numero di bit delle nuove chiavi da generare (default = 1024) - l'algoritmo di firma da usare (md5 o sha1) SigAlgo = "[valore]" - la modalità di esecuzione del programma ( yes o no ) - Verbose = "[valore]" visualizza informazioni aggiuntive sulle operazioni che sta compiendo durante l'esecuzione - Debug = "[yes]" visualizza di volta in volta anche tutti i dati crittati che sta usando - un comando o programma da eseguire al termine di autoSscep in caso si fossero rinnovati dei certificati ECommand = "[comando]" N.B. le opzioni generali vanno indicate prima dei certificati e delle CA !!! B.2. Dati della(e) Certification Authority La parte del file di configurazione per i dati di una ca inizia con [CA] e termina con [/CA] che devono essere poste all'inizio della riga. Nei dati della CA vanno indicati OBBLIGATORIAMENTE - Distinguished Name (nome caratteristico della CA o semplicemente un identificatore ) DN = "[valore]" - Url completo dello script SCEP della CA ( http://[:]/ ... ) URL = "[valore]" se non specificato il numero di porta è settato ad 80 - Certificato della CA (per la verifica della firma) CertFile = "[valore]" - Certificato della CA usato per crittare (eventualmente lo stesso della firma) EncCertFile = "[valore]" Opzionalmente si può specificare l'algoritmo di cifratura usato dalla CA EncAlgo = "[valore]" (i valori ammessi sono des, blowfish e 3des (des di default)) Se il server che ospita il server scep contiene più virtual Host (yes o no) VHost ="[valore]" n.b. alcuni server rispondono in maniera errata se questo dato non è configurato correttamente, se si è in dubbio mettere yes B.3. Dati relativi ai certificati La parte del file di configurazione per i dati di una ca inizia con [Certificate] e termina con [/Certificate] che devono essere posti all'inizio della riga. Nei dati di ogni certificato vanno indicati OBBLIGATORIAMENTE - Il nome del file del certificato CertFile = "[valore]" - Il nome del file della chiave KeyFile = "[valore]" n.b. i nomi dei file si riferiscono alla loro posizione rispetto alla cartelle dei certificati e delle chiavi indicate nelle opzioni generali - Il DN (Distinguished name) della CA firmataria di quel certificato CADN = "[valore]" - I dati per il DN del certificato Email = "[valore]" Country = "[valore]" (la sigla IT, US , UK ...) State = "[valore]" Location = "[valore]" Organization = "[valore]" OrgUnit = "[valore]" CommonName = "[valore]" (E' consigliabile inserirli tutti, ma in realtà OrganizationUnit e Email vengono considerati opzionali da AutoSscep) Valori opzionali - Comando per le nuove richieste: questa opzione serve ad eseguire un comando esterno quando per la prima volta viene richiesto un certificato sulla CA. Questo comando può essere utile ad esempio per segnalare con una mail la propria richiesta all'amministratore della CA. ReqCommand = "[valore]" (Viene eseguito solo per le NUOVE richieste pendenti, viene ignorato negli altri casi.) - Challenge password: questo attributo viene usato per l'autenticazione automatica della richiesta presso la CA con un segreto condiviso (anche per la revoca del certificato) ChallengePassword="[valore]" B.3.1 Estensioni X.509v3 Opzionalmente si possono specificare le estensioni X.509v3 da inserire nella richiesta di certificato L'elenco delle estensioni v3 inizia con [X509v3EXT] e termina con [/X509v3EXT] che devono essere posti all'inizio della riga. Le estensioni che AutoSScep permette di inserire sono alcune di quelle previste nella RFC2459 e comprese nelle librerie Openssl. - Key Usage - Subject Alternative Name - Basic Constraint - Extended Key Usage - Netscape Comment - Netscape Certificate Type B.3.2 Valori Ammessi per le estensioni X.509v3 La criticità dell'estensione è specificata ponendo la parola chiave critical seguita da virgola prima dei valori Es: key_usage = "critical, digitalSignature" Più valori per la stessa estensione sono specificati come elenco separato da virgola Es: key_usage = "digitalSignature,nonRepudiation" - Netscape Comment comando: netscape_comment valore: qualsiasi stringa - Subject Alternative Name comando: subject_alt_name valore: qualsiasi stringa - Basic Constraint comando: basic_constraints valore: Certificato di una ca ------ CA:true Certificato di un altra entità della PKI ----- CA:false - Key Usage (separati da virgola) comando: key_usage valori: USAGE ---- KEYWORD Digital Signature ---- digitalSignature Non Repudiation ---- nonRepudiation Key Encipherment ---- keyEncipherment Data Encipherment ---- dataEncipherment Key Agreement ---- keyAgreement Certificate Sign ---- keyCertSign CRL Sign ---- cRLSign Encipher Only ---- encipherOnly Decipher Only ----decipherOnly - Extended Key Usage comando: extended_key_usage valori: KEYWORD ---- EXTENDED KEY USAGE serverAuth ---- TLS Web Server Authentication clientAuth ---- TLS Web Client Authentication codeSigning ---- Code Signing emailProtection ---- E-mail Protection timeStamping ---- Time Stamping msCodeInd ---- Microsoft Individual Code Signing msCodeCom ---- Microsoft Commercial Code Signing msCTLSign ---- Microsoft Trust List Signing msSGC ---- Microsoft Server Gated Crypto msEFS ---- Microsoft Encrypted File System nsSGC ---- Netscape Server Gated Crypto - Netscape Certificate Type comando: netscape_cert_type valori: NS CERTIFICATE TYPER ---- KEYWORD SSL Client ---- client SSL Server ---- server S/MIME ---- email Object Signing ---- objsign Unused ---- reserved SSL CA ---- sslCA S/MIME CA ---- emailCA Object Signing CA ---- objCA C. Riassunto dei comandi principali D. Valori di default Nel caso non vengano esplicitamente dichiarate le seguenti opzioni vengono così impostate DaysBeforeExpire = "7" Verbose = "no" Debug = "no" KeyBits = "1024" SigAlgo = "md5" Per le CA EncAlgo = "des" VHost = "no" E. Esempio di file di configurazione --------------Inizio-Esempio------------------------------------------------------------------------------------------------ # Config file for autoScep ### General option # The directory that contains certificates CertDir = "/home/cert/" # The directory that contains the private keys KeyDir = "/home/keys/" # The number of expiration days before start enroll DaysBeforeExpire = "2" # The directory that contains the CA's certificates CADir = "/home/racerts/" ### Info e debug option # Possible values: yes or no. Verbose = "yes" Debug = "no" # The bits for the modules of private keys KeyBits = "2048" # Signature algorithm (md5 or sha1) SigAlgo = "md5" ### CAs' data # Define the CAs data [CA] DN = "C=IT, O=CA Organization, OU=Certification Authority, CN=myCA/Email=info@myCAdomain" URL = "http:///cgi-bin/scep/scep" CertFile = "ca.crt-0" EncCertFile = "ca.crt-0" # Encryption algorithm: des, 3des or blowfish. Default: des EncAlgo = "des" VHost = "yes" [/CA] [Certificate] CertFile = "mycertificate.crt" KeyFile = "mykey.key" # cert's CA Data CADN = "C=IT, O=CA Organization, OU=Certification Authority, CN=myCA/Email=info@myCAdomain" # DN Data Email = "mymail@mydomain" Country = "IT" State = "BS" Location = "Brescia" Organization = "My Organization" OrgUnit = "my unit" CommonName = "me" [X509v3EXT] key_usage = "digitalSignature,keyEncipherment,nonRepudiation" subject_alt_name = "mymail@mydomain" basic_constraints = "critical,CA:false" netscape_cert_type = "client,server" extended_key_usage = "serverAuth,clientAuth,codeSigning,emailProtection,timeStamping,msCodeInd,msCodeCom" netscape_comment = "VPN point to point" [/X509v3EXT] [/Certificate] --------------Fine Esempio-------------------------------------------------------------------------------------------------