Aller au contenu principal
Tags

Installation de CA (Certificate Authority)

septembre 28, 2012


1     
Introduction

Lorsque vous créez votre propre autorité de certification CA, vous pouvez l’enregistrer dans la liste des certificats d’autorités de votre navigateur, et tout certificat signé par votre CA sera automatiquement approuvé par votre navigateur.

Et si vous voulez utiliser un certificat client (pour l’authentification client), vous pouvez simplement importer le certificat CA dans le magasin de confiance côté serveur. De cette façon, un certificat client signé par votre CA sera automatiquement approuvé par le serveur. Ainsi, vous pouvez créer plusieurs certificats client, tous signés par votre autorité de certification, sans avoir à les importer dans votre magasin de confiance serveur

 

2      Créer votre propre CA pour Tomcat

2.1       Création de clé privé

Une fois openssl est correctement installé et configuré, vous pouvez commencer à créer votre propre autorité de certification.

Créer votre clé privée ca.key dans le répertoire privé avec la commande suivante:

Commande:

[prompt]$ sudo openssl genrsa -des3 -out /private/ca.key 1024

 Exécution:

[prompt]$  sudo openssl genrsa -des3 -out /private/ca.key 1024

Generating RSA private key, 1024 bit long modulus

………..++++++

…….++++++

e is 65537 (0x10001)

Enter pass phrase for /private/ca.key:

Verifying – Enter pass phrase for /private/ca.key:

 

2.2       Auto-signé le CA Certificate

Après vous pouvez auto-signer votre certificat CA pour une longue période de temps si vous le souhaitez. Spécifiez des informations concernant votre pays, localisation, etc… Ces informations seront lisibles dans un navigateur ou avec un outil comme outil keytool.

Commande:

[prompt]$ sudo openssl req -new -x509 -key /private/ca.key -out public/ca.crt -days 3600

Exécution:

[prompt]$ sudo openssl req -new -x509 -key /private/ca.key -out public/ca.crt -days 3600

Enter pass phrase for /private/ca.key:

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.

—–

Country Name (2 letter code) [GB]:FR

State or Province Name (full name) [Berkshire]:State

Locality Name (eg, city) [Newbury]:City

Organization Name (eg, company) [My Company Ltd]:Company Name

Organizational Unit Name (eg, section) []:OU

Common Name (eg, your name or your server’s hostname) []:Name

Email Address []:admin@company.com

 

Maintenant nous avons notre certificat de CA, et nous pouvons l’utiliser pour signer notre certificat de serveur. L’avantage de la signature de certificat de serveur est toujours le même que pour le certificat du client. Une fois la validité du certificat du serveur est expirée, vous devez le renouveler. Si vous gardez le même CA, pas besoin de mettre à jour le magasin de confiance de vos clients parce qu’ils ne contiennent que le certificat de CA. Ainsi, vous pouvez remplacer plusieurs fois le certificat de serveur que vous avez fourni et garder le même certificat CA.

2.3       Créer et signé le certificat serveur

Utilisez les commandes suivantes pour créer votre certificat de serveur avec openssl :

Nous avons d’abord générer la clé privée du serveur codé ( -des3 ), et protégé par un mot de passe fort.

Commande:

[prompt]$ sudo openssl genrsa -des3 -out /private/server.key 1024

Exécution:

[prompt]$ sudo openssl genrsa -des3 -out private/server.key 1024

Generating RSA private key, 1024 bit long modulus

……………..++++++

………………………………………………………………………………………………++++++

e is 65537 (0x10001)

Enter pass phrase for private/server.key:

Verifying – Enter pass phrase for private/server.key:

Ensuite, nous pouvons créer notre demande de signature de serveur de certificat (csr)

Commande:

[prompt]$ sudo openssl req -new -key private/server.key -out certificate/server.csr

Exécution:

[prompt]$ sudo openssl req -new -key private/server.key -out certificate/server.csr

Enter pass phrase for private/server.key:

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.

—–

Country Name (2 letter code) [GB]:FR

State or Province Name (full name) [Berkshire]:State

Locality Name (eg, city) [Newbury]:City

Organization Name (eg, company) [My Company Ltd]:Company Name

Organizational Unit Name (eg, section) []:Section

Common Name (eg, your name or your server’s hostname) []:Name

Email Address []:admin@company.com

Please enter the following ‘extra’ attributes

to be sent with your certificate request

A challenge password []:password

An optional company name []:Company Name

Puis le signer avec notre propre autorité de certification.

Commande:

 [prompt]$ sudo openssl x509 -req -days 360 -in certificate/server.csr -CA public/ca.crt -CAkey private/ca.key -CAcreateserial -out public/server.crt

Exécution:

[prompt]$ sudo openssl x509 -req -days 360 -in certificate/server.csr -CA public/ca.crt -CAkey private/ca.key -CAcreateserial -out public/server.crt

Signature ok

subject=/C=FR/ST=State/L=City/O=Company Name/OU=section/CN=Name/emailAddress=admin@company.com

Getting CA Private Key

Enter pass phrase for private/ca.key:

 

2.4       Création de keyStore et installation sous Tomcat

Alors maintenant, nous avons tout ce qu’il faut faire un fichier pkcs12. Plus tard, quand nous allons créer un certificat client (pour l’authentification client), nous aurons besoin du certificat pkcs12 pour les navigateurs, car il contient la clé privée et publique pour le côté client. Dans ce cas, le client va envoyer un message au serveur https codé avec la clé privée de certificat client, le serveur va décrypter le message avec la clé publique de certificat client et de le comparer avec le certificat client dans son magasin de confiance. Si elle correspond, le serveur va approuver le certificat client et nous appelons cela l’authentification du client processus.

Au début il faut créer le fichier pkcs12 (avec server.crt et server.key) et le convertir à un JKS keystore: server.jks. Ce magasin de clés contient la clé privée et publique nécessaire pour chiffrer un message côté serveur pour le serveur Tomcat.

Nous créons notre fichier pkcs12 avec openssl avec la commande suivante:

Commande:

[prompt]$ sudo openssl pkcs12 -export -in public/server.crt -inkey private/server.key -out certificate/server.p12

Exécution:

[prompt]$ sudo openssl pkcs12 -export -in public/server.crt -inkey private/server.key -out certificate/server.p12

Enter pass phrase for private/server.key:

Enter Export Password:

Verifying – Enter Export Password:

Nous devons maintenant transformer le pkcs12 à un fichier de clés.

Commande:

[prompt]$ sudo keytool -importkeystore -srckeystore certificate/server.p12 -srcstoretype pkcs12 -destkeystore certificate/server.jks -deststoretype jks -deststorepass password

Exécution:

[prompt]$ sudo keytool -importkeystore -srckeystore certificate/server.p12 -srcstoretype pkcs12 -destkeystore certificate/server.jks -deststoretype jks -deststorepass password

Saisissez le mot de passe du keystore sourceآ :

L’entrée de l’alias 1 a été importée.

Commande dimportation exécutée entrées importées, échec ou annulation de {1} entrées

[prompt]$

Publicités

From → Tomcat

Laisser un commentaire

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :