SSLTUTO : Certificats SSL

Avatar de l’utilisateur
OniK
Administrateur
Administrateur
Messages : 5173
Inscription : 03 avr. 2013, 19:32
A remercié : 367 fois
A été remercié : 1842 fois
Genre :
Zodiac :
Âge : 38
Contact :
Belgium

TUTO : Certificats SSL

#1

Message par OniK » 23 avr. 2013, 00:36

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 :

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
Générer et signer vos certificats SSL
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
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]:
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


鬼に金棒

Avatar de l’utilisateur
jmichel1204
Donateur
Donateur
Messages : 35
Inscription : 07 mai 2013, 19:19
A remercié : 10 fois
A été remercié : 3 fois

Re: TUTO : Certificats SSL

#2

Message par jmichel1204 » 07 mai 2013, 19:32

Bonjour

Merci mais tu le fait depuis un pc sous linux ou sur ta dreambox par exemple ?
Prismcube
Dm800hse clone image Newnigma2 v3.3.2 OSCam Shadow By OniK r9054
Vu+ solo2 original Black Hole OSCam Shadow By OniK r9054
Atlas 100hd A115

Avatar de l’utilisateur
OniK
Administrateur
Administrateur
Messages : 5173
Inscription : 03 avr. 2013, 19:32
A remercié : 367 fois
A été remercié : 1842 fois
Genre :
Zodiac :
Âge : 38
Contact :
Belgium

Re: TUTO : Certificats SSL

#3

Message par OniK » 07 mai 2013, 21:15

pour tout ce genre de chose j'utilise uniquement ubuntu 12.04 ... mais il marche aussi avec un nas synology par exemple ...

pour ce qui est de le faire tourner sur une dreambox ... ça peux fonctionner mais je n'ai jamais fait le test car enigma est quand même fort limité a ce niveau et on est loin de ce qui est dispo sur un linux complet ... surtout que d'une image a l'autre t'as pas forcement les même lib etc dispo ... faut tester ...

sinon si t'as pas de linux installé chez toi le plus simple c'est d'utiliser vmware player et de virtualiser ton ubuntu avec ...

c gratos, ça s'installe en qq min et ça te permet d'avoir plusieurs os dispo sans devoir te prendre la tête avec du multiboot etc ... tu lances juste le prog ds windows et c parti ^_-
鬼に金棒

Avatar de l’utilisateur
dodo5874
Donateur
Donateur
Messages : 108
Inscription : 08 mai 2013, 22:05
A remercié : 31 fois
A été remercié : 15 fois

Re: TUTO : Certificats SSL

#4

Message par dodo5874 » 09 mai 2013, 16:09

Salut Onik,

Pour l'édition de ssl.cnf, faut mettre quoi dans le premier DNS puis dans le second ? (le dns du FAI et l'adresse IP du PC ?)

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
A la place de votre site, une adresse dyndns c'est ok ?

Merci. A+.

Avatar de l’utilisateur
OniK
Administrateur
Administrateur
Messages : 5173
Inscription : 03 avr. 2013, 19:32
A remercié : 367 fois
A été remercié : 1842 fois
Genre :
Zodiac :
Âge : 38
Contact :
Belgium

Re: TUTO : Certificats SSL

#5

Message par OniK » 09 mai 2013, 16:40

salut dodo5874,

Code : Tout sélectionner

subjectAltName   = DNS:votre.dns.com, DNS:192.168.1.1, IP:192.168.1.1
ici en fait tu met ta dns ds le premier (DNS:votre.dns.com) et ds le second (DNS:192.168.1.1) tu mets l'ip interne de ton demo comme pour (IP:192.168.1.1)
c'est pour éviter toutes erreurs de certificats quand tu te connecte en local

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
ici une dns est ok mais pour que cela soit utile il faut que tu puisses y mettre la crl et le crt de ta ca ... sinon laisse comme ça.
c'est surtout utile pour un site web et/ou si tu émets d'autres certifs ssl pour pouvoir gérer les révocations de certificats ...

je vais très bientôt mettre un tuto pour les crl, les certificats S/MIME, certificats efs etc mais je n'ai malheureusement pas encore u le temps ...
鬼に金棒

Avatar de l’utilisateur
dodo5874
Donateur
Donateur
Messages : 108
Inscription : 08 mai 2013, 22:05
A remercié : 31 fois
A été remercié : 15 fois

Re: TUTO : Certificats SSL

#6

Message par dodo5874 » 09 mai 2013, 17:36

Salut,

la ligne subjectAltName c'est une ligne que t'ajoute dans la rubrique [ v3_ca ] ? La dns c'est celle qui est associé à ton ip ou le dns du fournisseur internet ?)

Merci.

Avatar de l’utilisateur
OniK
Administrateur
Administrateur
Messages : 5173
Inscription : 03 avr. 2013, 19:32
A remercié : 367 fois
A été remercié : 1842 fois
Genre :
Zodiac :
Âge : 38
Contact :
Belgium

Re: TUTO : Certificats SSL

#7

Message par OniK » 09 mai 2013, 18:19

non non tu ne dois rien ajouter ... pour subjectAltName c'est ici ds ssl.cnf

Code : Tout sélectionner

[ usr_cert ]

subjectAltName   = DNS:ma.dns.com, DNS:192.168.1.1, IP:192.168.1.1
basicConstraints = CA:FALSE
keyUsage          = digitalSignature, keyEncipherment, keyAgreement
....
et pour la dns c'est celle relié a ton ip
鬼に金棒

Avatar de l’utilisateur
dodo5874
Donateur
Donateur
Messages : 108
Inscription : 08 mai 2013, 22:05
A remercié : 31 fois
A été remercié : 15 fois

Re: TUTO : Certificats SSL

#8

Message par dodo5874 » 09 mai 2013, 23:14

Re,

Quand j'execute le script ssl.sh j'ai les messages suivant :

Code : Tout sélectionner

Using configuration from ./ssl.cnf
Enter pass phrase for ./ssl/CA/ssl.key/ca.key:
I am unable to access the ./ssl/CA/newcerts directory
./ssl/CA/newcerts: No such file or directory
moncertif.sh:Error: Failed to generate X.509 certificate
merci.

Avatar de l’utilisateur
OniK
Administrateur
Administrateur
Messages : 5173
Inscription : 03 avr. 2013, 19:32
A remercié : 367 fois
A été remercié : 1842 fois
Genre :
Zodiac :
Âge : 38
Contact :
Belgium

Re: TUTO : Certificats SSL

#9

Message par OniK » 09 mai 2013, 23:59

en tout début de procédure as tu bien fais

Code : Tout sélectionner

mkdir ssl/CA/newcerts
le dossier existe ??
鬼に金棒

Avatar de l’utilisateur
dodo5874
Donateur
Donateur
Messages : 108
Inscription : 08 mai 2013, 22:05
A remercié : 31 fois
A été remercié : 15 fois

Re: TUTO : Certificats SSL

#10

Message par dodo5874 » 10 mai 2013, 00:34

Re,

Oui, j'ai même changer les droits de tous les fichiers et j'ai cette erreur, là jcomprend pas :?: .

A+

Répondre

Revenir à « SSL »