Création d'un certificat x509

- 3 oct. 2012 à 15:50 - Dernière réponse :
Messages postés
1
Date d'inscription
mercredi 2 mai 2018
Dernière intervention
3 mai 2018
- 3 mai 2018 à 13:25
Bonjour tout le monde,
Mon sujet de PFE consiste à créer une application qui permet de générer des certificat afin de signer des document électroniquement avec java netbeans , donc j'ai créer une interface dans laquelle l'utilisateur tape son login ; son mp et la période de validité de la certificat qu'il va générer via un bouton certificat , mais on fait j'ai trouvé plusieurs code pour générer une certificat mais j'arrive pas à les implémenter dans mon programme .
Je serais très reconnaissante de vouloir m'aider et merci d'avance .
Afficher la suite 

Votre réponse

3 réponses

Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
- 3 oct. 2012 à 15:54
0
Merci
Bonjour,

Oui, nous pouvons t'aider, peux tu nous exposer précisément ton problème ?
Commenter la réponse de cs_Julien39
0
Merci
Tout d'abord est ce qu'il y a un code simple pour faire créer des certificat et comment je peut faire de sorte que les informations mentionnées sur le formulaire dont l'utilisateur a tapé comme la MP et la validité de certificat soient utilisé dans ce code
la par exemple j'ai trouvé un code d'un autre forum mais on l’exécutant ça passe pas

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.util.Date;

import sun.security.x509.AlgorithmId;
import sun.security.x509.CertificateAlgorithmId;
import sun.security.x509.CertificateIssuerName;
import sun.security.x509.CertificateSerialNumber;
import sun.security.x509.CertificateSubjectName;
import sun.security.x509.CertificateValidity;
import sun.security.x509.X500Name;
import sun.security.x509.X509CertImpl;
import sun.security.x509.X509CertInfo;

public class MainClass {
public static void main(String[] args) throws Exception {
String keystoreFile = "keyStoreFile.bin";
String caAlias = "caAlias";
String certToSignAlias = "cert";
String newAlias = "newAlias";

char[] password = new char[]{'a','b','c','d','e','f','g','h'};
char[] caPassword = new char[]{'a','b','c','d','e','f','g','h'};
char[] certPassword = new char[]{'a','b','c','d','e','f','g','h'};

FileInputStream input = new FileInputStream(keystoreFile);
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(input, password);
input.close();

PrivateKey caPrivateKey = (PrivateKey) keyStore.getKey(caAlias, caPassword);
java.security.cert.Certificate caCert = keyStore.getCertificate(caAlias);

byte[] encoded = caCert.getEncoded();
X509CertImpl caCertImpl = new X509CertImpl(encoded);

X509CertInfo caCertInfo = (X509CertInfo) caCertImpl.get(X509CertImpl.NAME + "."
+ X509CertImpl.INFO);

X500Name issuer = (X500Name) caCertInfo.get(X509CertInfo.SUBJECT + "."
+ CertificateIssuerName.DN_NAME);

java.security.cert.Certificate cert = keyStore.getCertificate(certToSignAlias);
PrivateKey privateKey = (PrivateKey) keyStore.getKey(certToSignAlias, certPassword);
encoded = cert.getEncoded();
X509CertImpl certImpl = new X509CertImpl(encoded);
X509CertInfo certInfo = (X509CertInfo) certImpl
.get(X509CertImpl.NAME + "." + X509CertImpl.INFO);

Date firstDate = new Date();
Date lastDate = new Date(firstDate.getTime() + 365 * 24 * 60 * 60 * 1000L);
CertificateValidity interval = new CertificateValidity(firstDate, lastDate);

certInfo.set(X509CertInfo.VALIDITY, interval);

certInfo.set(X509CertInfo.SERIAL_NUMBER, new CertificateSerialNumber(
(int) (firstDate.getTime() / 1000)));

certInfo.set(X509CertInfo.ISSUER + "." + CertificateSubjectName.DN_NAME, issuer);

AlgorithmId algorithm = new AlgorithmId(AlgorithmId.md5WithRSAEncryption_oid);
certInfo.set(CertificateAlgorithmId.NAME + "." + CertificateAlgorithmId.ALGORITHM, algorithm);
X509CertImpl newCert = new X509CertImpl(certInfo);

newCert.sign(caPrivateKey, "MD5WithRSA");

keyStore.setKeyEntry(newAlias, privateKey, certPassword,
new java.security.cert.Certificate[] { newCert });

FileOutputStream output = new FileOutputStream(keystoreFile);
keyStore.store(output, password);
output.close();

}
}
NB : c'est mon premier programme en java
Merci
Messages postés
1
Date d'inscription
mercredi 2 mai 2018
Dernière intervention
3 mai 2018
- 3 mai 2018 à 13:25
mon projet fin d'étude consiste à developper un outil de signature electronique des documents et je travaille en j2ee svp vous pouvez me donner un code example pour la génration des certicats utilisateurs en java et merci
Commenter la réponse de mdhekra

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.