OPENSSL
un fichier de configuration placé dans /etc/ ou /usr/local/ssl/ s'appelle openssl.cnf
Une clef public peut être générée à partir d'une clef privée.
on utilise openssl 0.9.8g

Pour générer une clef privée:
*********************
	openssl genrsa
	openssl gendsa
	voir [1]
	
	avec mot de passe 
		openssl genrsa -des3 -out privkey.pem
	sans mot de passe
		openssl genrsa -out privkey.pem
	
pour générer une demande de cretificat:
*****************************
csr = certificate signing request

	openssl req -new -key privkey.pem -out certif.csr
	
interroge pour la saisie de parametres
génere un fichier cert.csr à transmettre à l'autorité de certification.

pour générer un certificat autosigné:
***************************
	openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
	
interroge pour la saisie de parametres
génere un fichier cacert.pem	
pour lire les infos saisies, faire:
	openssl x509 -text -in cacert.pem
	
pour avoir le certificat d'un site:
***********************
echo |openssl s_client -connect dsi-experts.fr:443 2>&1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -text

pour obtenir le crl de verisign:
**********************
	wget http://SVRIntl-crl.verisign.com/SVRIntl.crl
	
quand on est CA:
*************
pour lire OPENSSLDIR
	openssl version -a 
	ce répertoire contient openssl.cnf, par exemple /usr/lib/ssl/openssl.cnf
	
pour signer un csr
	openssl x509 -req -days 365 -in certif.csr \
	-CA /usr/lib/ssl/certs/CA.crt -CAkey /usr/lib/ssl/private/CA.pem -CAcreateserial -out new.crt
	
pour créer une CRL vide
	selon openssl.cnf, si la clef [ CA default ] contient
		dir = /usr/lib/ssl/demoCA/index.txt
		database = $dir/index.txt
	touch /usr/lib/ssl/demoCA/index.txt
	
pour signer une CRL
crl (certificate revocation list)
	openssl ca -gencrl -keyfile <ca_key> -cert <ca_crt> -out my_crl.pem 
	
pour révoquer un certificat
	openssl ca -revoke <mauvais_crt> -keyfile <ca_key> -cert <ca_crt>
	ajoute le certificat à index.txt
	
En plus clair:
*********
[http://www.openssl.org/docs/apps/ca.html]
avec l'openssl par défaut et un répertoire ./demoCA contenant
	newcerts/
	private/cakey.pem	[fabriqué avec openssl genrsa]
	cacert.pem			[ici autosigné]
	index.txt	(vide)
	serial		(contenant 01)
	crlnumber	(contenant 01) [il est incrémenté à la génération d'un crl]

Ce répertoire est dans le répertoire courant de l'appel openssl

signer un csr
	openssl ca -in req.pem -out newcert.pem
signer un csr en utilisant un "CA extension":
	openssl ca -in req.pem -extension v3_a -out newcert.pem
generer un CRL
	openssl ca -gencrl -out crl.pem
signer plusiers csr: 
	openssl ca -infiles req1.pem req2.pem req3.pem
Certify a Netscape SPKAC: 
	openssl ca -spkac spkac.txt



lien intéressant:
************

[1] OpenSSL Command-Line HOWTO
	http://www.madboa.com/geek/openssl/	
		signer un mime
		crypter -décrypter un fichier
		générer un nombre premier, aléatoire

[2] The Opensource PKI Book
	http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm

[3] Guide pratique des certificats SSL
	http://guidespratiques.traduc.org/vf/SSL-Certificates-HOWTO.html
	
[4] Certificate Management and Generation with OpenSSL
	http://gagravarr.org/writing/openssl-certs/ca.shtml#ca-revoke
		production d'une crl
		
		
