Poster une réponse à un sujet: Certificat
Attention, ce sujet est un sujet ancien (6095 jours sans réponse)
ovh
rfr> lui faire tomber ses certif après un ans, c'est dure comme traitement.
+1 moi je mets toujours -days 99999
![:joce: :joce:](images/smileys/joce.gif)
rfr
rfr> lui faire tomber ses certif après un ans, c'est dure comme traitement.
Self-signed, pas de gestion des CRL, alors oui
![:ddr555: :ddr555:](images/smileys/ddr555.gif)
kortenberg
Merci Max et Philfr
Donc, en gros, si je suis bien, il faut...
1. Créer un CA self-signed
2. Créer une clé privée
3. Créer une clé publique.
A quoi "ressemble" tout ca? C'est des fichiers?
Donc, en gros, si je suis bien, il faut...
1. Créer un CA self-signed
2. Créer une clé privée
3. Créer une clé publique.
A quoi "ressemble" tout ca? C'est des fichiers?
Tous les fichiers utils pour le vpn sont indiqué dans "Generate the master Certificate Authority (CA) certificate & key" -> "Key Files" dans http://openvpn.net/howto.html
rfr> lui faire tomber ses certif après un ans, c'est dure comme traitement.
rfr
la génération des clés se fait en même temps que le certificat.
Tu as openssl?
Sinon c'est:
openssl req -x509 -days 365 -newkey rsa:2048 -out cert.pem -keyout privkey.pem
Ton vertificat est dans le fichier cert.pem et la clé est dans privkey.pem.
En fait, il faut voir un certificat comme un fichier contenant des info "textuelles" (pas tout à fait vrai mes bon) et ta clés publique.
L'ensemble est alors signée par une clé privée. La tienne en l'occurence.
Si x est un message (des infos à enrypter)
Si Kpv est une clé privée
Si Kpu est une clé publique
Si H(x) est une fonction de hashage à sens unique
Si S(Kpv,x) est une fonction de signature avec clé privée
Si E(Kpu,x) est une fonction de chiffrement avec clé publique (Note que, S(Kpv,x) est équivalent à E(Kpv,H(x)), mais on utilise une autre convention par clarté).
Si D(K,x) est une fonction de déchiffrement à clé publique/clé privée
Un certificat +/- = Info + Kpu + S(Kpv, Info + Kpu)
Vérifier un certificat, c'est simplement tester que:
Le résultat de S(Kpv, Info + Kpu) (notons le SIG) passé dans D, donc
D(Kpu, SIG) est égal à H(Info + Kpu)
Aussi simple que ça.
Tu as openssl?
Sinon c'est:
openssl req -x509 -days 365 -newkey rsa:2048 -out cert.pem -keyout privkey.pem
Ton vertificat est dans le fichier cert.pem et la clé est dans privkey.pem.
En fait, il faut voir un certificat comme un fichier contenant des info "textuelles" (pas tout à fait vrai mes bon) et ta clés publique.
L'ensemble est alors signée par une clé privée. La tienne en l'occurence.
Si x est un message (des infos à enrypter)
Si Kpv est une clé privée
Si Kpu est une clé publique
Si H(x) est une fonction de hashage à sens unique
Si S(Kpv,x) est une fonction de signature avec clé privée
Si E(Kpu,x) est une fonction de chiffrement avec clé publique (Note que, S(Kpv,x) est équivalent à E(Kpv,H(x)), mais on utilise une autre convention par clarté).
Si D(K,x) est une fonction de déchiffrement à clé publique/clé privée
Un certificat +/- = Info + Kpu + S(Kpv, Info + Kpu)
Vérifier un certificat, c'est simplement tester que:
Le résultat de S(Kpv, Info + Kpu) (notons le SIG) passé dans D, donc
D(Kpu, SIG) est égal à H(Info + Kpu)
Aussi simple que ça.
Jean-Christophe
Merci Max et Philfr
Donc, en gros, si je suis bien, il faut...
1. Créer un CA self-signed
2. Créer une clé privée
3. Créer une clé publique.
A quoi "ressemble" tout ca? C'est des fichiers?
Donc, en gros, si je suis bien, il faut...
1. Créer un CA self-signed
2. Créer une clé privée
3. Créer une clé publique.
A quoi "ressemble" tout ca? C'est des fichiers?
Ppxl
par contre dans easy-rsa il ne met pas grand chose par défaut. L'outil intégré ne fait pas grand grand chose non plus ... en tout cas pas de quoi faire une config complète aisément et rapidement (à ce que j'ai cru comprendre c'est ce qui est espéré à juste titre).
philfr
Un certificat est un "document électronique" qui lie une clé cryptographique à une identité.
Pour faire de la crypto (cryptage et signature), il te faut une clé. Plus exactement, une paire de clés: une partie est privée, t'appartient et n'est jamais divulguée à personne, et une partie est publique et tu peux la publier par exemple sur un site web.
La partie publique permet à n'importe qui de crypter un document que toi seul pourra décrypter avec ta clé privée.
Et cette même clé privée te permet à toi seul de signer un document que tout le monde pourra vérifier à l'aide de ta clé publique.
Le problème est: comment assurer qu'une clé publique appartient bien à qui l'on croit qu'elle appartient. Pour cela, on fait confiance à une autorité supérieure (un CA ou certificate authority) pour signer un document attestant du lien entre une clé publique et son titulaire. Si tu vas sur un site en https, ce site t'envoie son certificat contenant sa clé publique et son nom de domaine, signé par un des CA reconnus nativement par ton browser.
Les CA sont particuliers, puisque leur certificat ne peut être signé par une autorité supérieure à eux
Donc un certificat de CA est "self-signed", c'est à dire signé par le CA lui-même.
On peut aussi avoir une chaîne de certificats: un CA signe un certificat d'une autorité habilitée à signer elle-même des certificats, qui signe ton certificat à toi...
Tous les systèmes cryptographiques basés sur ce système de certificats (X.509) on besoin d'un ou plusieurs certificats CA pour authentifier tous les autres certificats.
OpenVPN n'échappe pas à la règle. Mais tu ne dois pas forcément payer (parfois cher) un organisme CA pour obtenir tes certificats. Tu peux créer toi-même to CA et générer autant de certificats clients que tu veux, tu peux même utiliser des certificats self-signed pour chacun des participants au VPN si tu veux (mais c'est finalement moins simple).
Le couteau suisse de la crypto s'appelle openssl, et est nativement installé sur toute machine linux. Il est aussi porté sous windows. Avec lui, tu peux générer ton certificat CA, ainsi que les certificats des machines sur lesquelles tu veux installer OpenVPN.
Là je vais passer à table, pose les questions que tu veux, je reviens plus tard
Pour faire de la crypto (cryptage et signature), il te faut une clé. Plus exactement, une paire de clés: une partie est privée, t'appartient et n'est jamais divulguée à personne, et une partie est publique et tu peux la publier par exemple sur un site web.
La partie publique permet à n'importe qui de crypter un document que toi seul pourra décrypter avec ta clé privée.
Et cette même clé privée te permet à toi seul de signer un document que tout le monde pourra vérifier à l'aide de ta clé publique.
Le problème est: comment assurer qu'une clé publique appartient bien à qui l'on croit qu'elle appartient. Pour cela, on fait confiance à une autorité supérieure (un CA ou certificate authority) pour signer un document attestant du lien entre une clé publique et son titulaire. Si tu vas sur un site en https, ce site t'envoie son certificat contenant sa clé publique et son nom de domaine, signé par un des CA reconnus nativement par ton browser.
Les CA sont particuliers, puisque leur certificat ne peut être signé par une autorité supérieure à eux
![:oh: :oh:](images/smileys/oh.gif)
Donc un certificat de CA est "self-signed", c'est à dire signé par le CA lui-même.
On peut aussi avoir une chaîne de certificats: un CA signe un certificat d'une autorité habilitée à signer elle-même des certificats, qui signe ton certificat à toi...
Tous les systèmes cryptographiques basés sur ce système de certificats (X.509) on besoin d'un ou plusieurs certificats CA pour authentifier tous les autres certificats.
OpenVPN n'échappe pas à la règle. Mais tu ne dois pas forcément payer (parfois cher) un organisme CA pour obtenir tes certificats. Tu peux créer toi-même to CA et générer autant de certificats clients que tu veux, tu peux même utiliser des certificats self-signed pour chacun des participants au VPN si tu veux (mais c'est finalement moins simple).
Le couteau suisse de la crypto s'appelle openssl, et est nativement installé sur toute machine linux. Il est aussi porté sous windows. Avec lui, tu peux générer ton certificat CA, ainsi que les certificats des machines sur lesquelles tu veux installer OpenVPN.
Là je vais passer à table, pose les questions que tu veux, je reviens plus tard
![:wink: :wink:](images/smileys/wink.gif)
max
je confirme: regarde dans le repertoire easy-rsa
max
j'ai Adélie sur les genoux, donc pas le temps de taper un rapport sur ce qu'est un CA,les signatures, certificats mais normalement, tu as un outil pour t'aider fourni avec openvpn (enfin je crois)