
Administrateur
salut tout le monde
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 :
maintenant on va créer une base de données pour référencer les certificats que nous allons signer
maintenant il vous suffit simplement d’éditer mon script avec vos infos
ds le fichier ca.cnf vous devez editer :
et
maintenant vous pouvez lancer ca.sh pour créer une CA valide 10 ans avec clef AES256 a 4096bits
entrez un code secret pour votre clef privée ( ne l'oubliez surtout pas !!!! )
on vous redemande votre code secret
si vous avez bien édité votre fichier de config un simple "enter" par ligne pour confirmer
on vous redemande votre code secret
Félicitation vous venez de créer votre propre CA !!!
vous avez au total crée 4 fichiers :
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
et
et la partie la plus importante :
maintenant vous pouvez lancer ssl.sh pour créer une certificat valide 1 an avec clef AES256 a 4096bits
entrez un code secret pour votre clef privée ( ne l'oubliez surtout pas !!!! )
on vous redemande votre code secret
si vous avez bien édité votre fichier de config un simple "enter" par ligne pour confirmer
on vous demande le code secret de votre CA
si tout est OK faite y puis "enter"
y encore une fois
on vous redemande votre code secret
on vous redemande votre code secret
Félicitation vous venez d’émettre votre premier certificat SSL !!!
vous avez au total crée 5 fichiers :
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
maintenant on va créer une base de données pour référencer les certificats que nous allons signer
- Code: Tout sélectionner
cd ssl/CA
echo '01' > serial
touch index.txt
maintenant il vous suffit simplement d’éditer mon script avec vos infos
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
et
- 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
maintenant vous pouvez lancer ca.sh pour créer une CA valide 10 ans avec clef AES256 a 4096bits
- Code: Tout sélectionner
./ca.sh
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:
entrez un code secret pour votre clef privée ( ne l'oubliez surtout pas !!!! )
______________________________________________________________________
STEP 2: Generating X.509 certificate for CA signed by itself [ca.crt]
Enter pass phrase for ssl/CA/ssl.key/ca.key:
on vous redemande votre code secret
You 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 []:
si vous avez bien édité votre fichier de config un simple "enter" par ligne pour confirmer
Verify: matching certificate & key modulus
Enter pass phrase for ssl/CA/ssl.key/ca.key:
on vous redemande votre code secret
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:~$
Félicitation vous venez de créer votre propre CA !!!
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
et
- 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
et la partie la plus importante :
- Code: Tout sélectionner
subjectAltName = DNS:votre.dns.com, DNS:192.168.1.1, IP:192.168.1.1
maintenant vous pouvez lancer ssl.sh pour créer une certificat valide 1 an avec clef AES256 a 4096bits
- Code: Tout sélectionner
./ssl.sh
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:
entrez un code secret pour votre clef privée ( ne l'oubliez surtout pas !!!! )
______________________________________________________________________
STEP 2: Generating X.509 certificate signing request for SERVER [ssl.csr]
Enter pass phrase for ssl/server/ssl.key/ssl.key:
on vous redemande votre code secret
You 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 []:
si vous avez bien édité votre fichier de config un simple "enter" par ligne pour confirmer
______________________________________________________________________
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:
on vous demande le code secret de votre CA
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryNameRINTABLE:'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]:
si tout est OK faite y puis "enter"
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]
y encore une fois
Write 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 secret
Verify: 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:
on vous redemande votre code secret
writing RSA key
______________________________________________________________________
STEP 5: Securing private key & oscam.pem
Félicitation vous venez d’émettre votre premier certificat SSL !!!
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
鬼に金棒