	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://<host-name>[:<port-num>]/<path> ... )
		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://<ca- host>/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-------------------------------------------------------------------------------------------------
