je vais vous faire un petit tuto rapide avec tout ce qu'il vous faut pour devenir votre propre CA ( Autorité de certification ) et ainsi pouvoir émettre vos propre certificats SSL!
- le SSl etc kesako ??
un peux de lecture :
Transport Layer Security
- pq utiliser un certificat SSL, S/MIME ... ??
tout simplement pour sécuriser vos échanges sur le net ... pour sécuriser un site web, une webif, votre mail ... etc etc
il existe deux type de certificats ... ceux signe par une CA ( officiel ou non ) et les auto signé ... les certificats auto signe étant peu pratique je ne vais pas en parler ici ...
bon revenons en a nos moutons !
Devenir sa propre CA
une petite préparation des dossiers de base :
Code : Tout sélectionner
mkdir ssl
mkdir ssl/CA
mkdir ssl/CA/newcerts
Code : Tout sélectionner
cd ssl/CA
echo '01' > serial
touch index.txt
ds le fichier ca.cnf vous devez editer :
- countryName_default
- stateOrProvinceName_default
- localityName_default
- 0.organizationName_default
- organizationalUnitName_default
- commonName_default
Code : Tout sélectionner
[ req_distinguished_name ]
countryName = "1. Country Name (2 letter code)"
countryName_default = JP
countryName_min = 2
countryName_max = 2
stateOrProvinceName = "1a. Etat ou province (nom complet) "
stateOrProvinceName_default = Kansai
localityName = "1b. Ville (nom complet) "
localityName_default = Kyoto
0.organizationName = "2. Organization Name (eg, company) "
0.organizationName_default = Ltd.
organizationalUnitName = "3. Organizational Unit Name (eg, section) "
organizationalUnitName_default = Secure Digital Certificate Signing
commonName = "4. Common Name (eg, CA name) "
commonName_max = 64
commonName_default = Certification Authority
emailAddress = "5. Addresse e-mail "
emailAddress_max = 40
Code : Tout sélectionner
crlDistributionPoints = URI:http://www.votresite.com/crl.crl
authorityInfoAccess = 1.3.6.1.5.5.7.48.2;URI:http://www.votresite.com/ca.crt
Code : Tout sélectionner
./ca.sh
entrez un code secret pour votre clef privée ( ne l'oubliez surtout pas !!!! )onik@ubuntu:~$ ./ca.sh
______________________________________________________________________
STEP1: Generating RSA private key for CA (4096 bit) [ca.key]
Generating RSA private key, 4096 bit long modulus
........................................................................................................................................................................++
............++
e is 65537 (0x10001)
Enter pass phrase for ssl/CA/ssl.key/ca.key:
Verifying - Enter pass phrase for ssl/CA/ssl.key/ca.key:
on vous redemande votre code secret______________________________________________________________________
STEP 2: Generating X.509 certificate for CA signed by itself [ca.crt]
Enter pass phrase for ssl/CA/ssl.key/ca.key:
si vous avez bien édité votre fichier de config un simple "enter" par ligne pour confirmerYou are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
1. Country Name (2 letter code) [JP]:
1a. Etat ou province (nom complet) [Kansai]:
1b. Ville (nom complet) [Kyoto]:
2. Organization Name (eg, company) [Ltd.]:
3. Organizational Unit Name (eg, section) [Secure Digital Certificate Signing]:
4. Common Name (eg, CA name) [Certification Authority]:
5. Addresse e-mail []:
on vous redemande votre code secretVerify: matching certificate & key modulus
Enter pass phrase for ssl/CA/ssl.key/ca.key:
Félicitation vous venez de créer votre propre CA !!!Verify: matching certificate signature
ssl/CA/ssl.crt/ca.crt: C = JP, ST = Kansai, L = Kyoto, O = Ltd., OU = Secure Digital Certificate Signing, CN = Certification Authority
error 18 at 0 depth lookup:self signed certificate
OK
______________________________________________________________________
STEP 3: Securing private key
onik@ubuntu:~$
vous avez au total crée 4 fichiers :
- la base de donnée : /ssl/CA/index.txt et /ssl/CA/serial
- votre certificat CA : /ssl/CA/ssl.crt/ca.crt
- votre clef privée : /ssl/CA/ssl.key/ca.key
maintenant on va passer au certificat ssl pour votre site web ou votre webif ... le but ici et d'avoir un accès HTTPS a votre interface web ... ds l'exemple ici on sécurise une webif OSCam
éditez ssl.cnf de la même façon que ca.cnf
Code : Tout sélectionner
[ req_distinguished_name ]
countryName = "1. Country Name (2 letter code)"
countryName_default = JP
countryName_min = 2
countryName_max = 2
stateOrProvinceName = "1a. Etat ou province (nom complet) "
stateOrProvinceName_default = Kansai
localityName = "1b. Ville (nom complet) "
localityName_default = Kyoto
0.organizationName = "2. Organization Name (eg, company) "
0.organizationName_default = Ltd.
organizationalUnitName = "3. Organizational Unit Name (eg, section) "
organizationalUnitName_default = Oscam
commonName = "4. Common Name (eg, CA name) "
commonName_max = 64
commonName_default = Oscam
emailAddress = "5. Addresse e-mail "
emailAddress_max = 40
Code : Tout sélectionner
crlDistributionPoints = URI:http://www.votresite.com/crl.crl
authorityInfoAccess = 1.3.6.1.5.5.7.48.2;URI:http://www.votresite.com/ca.crt
Code : Tout sélectionner
subjectAltName = DNS:votre.dns.com, DNS:192.168.1.1, IP:192.168.1.1
Code : Tout sélectionner
./ssl.sh
entrez un code secret pour votre clef privée ( ne l'oubliez surtout pas !!!! )onik@ubuntu:~$ ./ssl.sh
______________________________________________________________________
STEP 1: Generating private key for SERVER (4096 bit) [ssl.key]
Generating RSA private key, 4096 bit long modulus
........................................++
....................................................................................++
e is 65537 (0x10001)
Enter pass phrase for ssl/server/ssl.key/ssl.key:
Verifying - Enter pass phrase for ssl/server/ssl.key/ssl.key:
on vous redemande votre code secret______________________________________________________________________
STEP 2: Generating X.509 certificate signing request for SERVER [ssl.csr]
Enter pass phrase for ssl/server/ssl.key/ssl.key:
si vous avez bien édité votre fichier de config un simple "enter" par ligne pour confirmerYou are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
1. Country Name (2 letter code) [JP]:
1a. Etat ou province (nom complet) [Kansai]:
1b. Ville (nom complet) [Kyoto]:
2. Organization Name (eg, company) [Ltd.]:
3. Organizational Unit Name (eg, section) [Oscam]:
4. Common Name (eg, CA name) [Oscam]:
5. Addresse e-mail []:
Please enter the following 'extra' attributes
to be sent with your certificate request
Un mot de passe de challenge []:
Nom optionnel []:
on vous demande le code secret de votre CA______________________________________________________________________
STEP 3: Generating X.509 certificate signed by own CA [ssl.crt]
Using configuration from ./ssl.cnf
Enter pass phrase for ./ssl/CA/ssl.key/ca.key:
si tout est OK faite y puis "enter"Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'JP'
stateOrProvinceName :ASN.1 12:'Kansai'
localityName :ASN.1 12:'Kyoto'
organizationName :ASN.1 12:'Ltd.'
organizationalUnitName:ASN.1 12:'Oscam'
commonName :ASN.1 12:'Oscam'
Certificate is to be certified until Apr 22 22:24:06 2014 GMT (365 days)
Sign the certificate? [y/n]:
y encore une foisSign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]
on vous redemande votre code secretWrite out database with 1 new entries
Data Base Updated
Verify: matching certificate & key modulus
Enter pass phrase for ssl/server/ssl.key/ssl.key:
on vous redemande votre code secretVerify: matching certificate signature
ssl/server/ssl.crt/ssl.crt: OK
______________________________________________________________________
STEP 4: Generating oscam.pem
Enter pass phrase for ssl/server/ssl.key/ssl.key:
Félicitation vous venez d’émettre votre premier certificat SSL !!!writing RSA key
______________________________________________________________________
STEP 5: Securing private key & oscam.pem
vous avez au total crée 5 fichiers :
- votre certificat : /ssl/server/ssl.crt/ssl.crt
- votre clef privée : /ssl/server/ssl.key/ssl.key
- votre csr : /ssl/server/ssl.csr/ssl.csr
- votre certificat pour oscam : /ssl/server/oscam.pem
- une copie du certificat : /ssl/CA/newcerts/01.pem