Rubrique précédente: Certificats SSLRubrique suivante: Utilisation du protocole SSL avec plusieurs certificats


Création de votre propre certificat auto-signé

Dans cet exemple, l'utilitaire keytool, inclus avec l'environnement d'exécution Java (JRE), est utilisé.

Pour créer votre propre certificat auto-signé :

  1. Entrez les réponses appropriées aux invites.
    prompt>keytool -genkey -alias serverA -keyalg RSA -validity 365 -keystore keystore.ks
    
    Enter keystore password: MyNewSecretPassword  <the actual plaintext won't be shown>
    
    Re-enter new password: MyNewSecretPassword
    
    What is your first and last name?
    
      [Unknown]: serverA
    
    What is the name of your organizational unit?
    
      [Unknown]: dev
    
    What is the name of your organization?
    
      [Unknown]: ITKO
    
    What is the name of your City or Locality?
    
      [Unknown]: Dallas
    
    What is the name of your State or Province?
    
      [Unknown]: TX
    
    What is the two-letter country code for this unit?
    
      [Unknown]: US
    
    Is CN=serverA, OU=dev, O=ITKO, L=Dallas, ST=TX, C=US correct?
    
      [no]: yes
    
    Enter key password for <serverA>
    
            (RETURN if same as keystore password)  <just hit return>
    


    L'utilitaire crée un fichier contenant un certificat valide pendant 365 jours.

  2. Copiez le fichier dans LISA_HOME et mettez à jour local.properties :
    lisa.net.keyStore={{LISA_HOME}}keystore.ks
    
    lisa.net.keyStore.password=MyNewSecretPassword
    
  3. Lors de sa première lecture par DevTest, le mot de passe en texte brut est converti en propriété chiffrée :
    lisa.net.keyStore.password_enc=33aa310aa4e18c114dacf86a33cee898
    

    Le côté serveur de la configuration de connexion est terminé.

  4. Configurez le client.

    Ce certificat étant auto-signé, indiquez explicitement aux clients de faire confiance au certificat. Généralement, lorsque vous vous connectez à un service SSL (par exemple, à l'aide d'un navigateur à l'adresse https://www.MyBank.com), une autorité de certification fiable certifie le certificat. Vous devez ajouter le certificat dans un référentiel d'approbations, car les tiers approuvés ne certifient pas les certificats auto-signés :

    lisa.net.trustStore={{LISA_HOME}}trustStore.ts
    
    lisa.net.trustStore.password=MyNewSecretPassword
    

    Le même utilitaire keytool manipule les référentiels d'approbations. En général, un référentiel de clés contient un certificat et un référentiel d'approbations contient un ou plusieurs certificats.

  5. Exportez le certificat à partir du référentiel de clés du serveur :
    keytool -exportcert -rfc -alias serverA -keystore keyStore.ks -file serverA.cer
    

    -rfc indique d'exporter le certificat sous forme de texte ASCII au lieu du format binaire, pour simplifier l'utilisation des fonctions copier et coller. Dans notre exemple, le fichier serverA.cer résultant est similaire à l'exemple suivant :

    -----BEGIN CERTIFICATE-----
    
    MIICEzCCAXygAwIBAgIEThZnYzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJDQjELMAkGA1UE
    
    CBM420IxCzAJBgNVBAcTAkNCMQswCQYDVQQKEwJDQjELMAkGA1UECxMCQ0IxCzAJBgNVBAMTAkNC
    
    MB4XDTExMDcwODAyMTE0N1oXDTEyMDcwNzAyMTE0N1owTJELMAkGA1UEBhMCQ0IxCzAJBgNVBAgT
    
    AkNCMQswCQYDVQQHEwJDQjELMAkGA1UECDMCQ0IxCzAJBgNVBAsTAkNCMQswCQYDVQQDEwJDQjCB
    
    nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAhYfaN+dCrKQwYZ+KeaaPUI8DeXNiqQ/mS+KGnXnh
    
    Pz08vdX/7HDLW4pzFhntjmkxxOi9dMwlO2thTD1cOxI571PotenMENo4nyiUAEnMK9MTiWEYr2cQ
    
    b6/TUueBCjRJ9I0GPCI0WPS+0Na2Q/wq8gPCHmDRpw1Xgo4uZ1v6C/ECAwEAATANBgkqhkiG9w0B
    
    AQUFAAOBgQByCsX9EoBFIGhcSwoRwEvapIrv8wTaqQPOKKyeIevSmbnERRu6+oi+cJftbdEfw6GG
    
    CBddJH+dGZ9VeqLU8zBGasbU+JPzG5ElOgOXcUGeQQEaM1YMv6XWrIwNSljQk/MPZSt3ROtJOlae
    
    JPKJXSQ610xof9+yLHH0ebUGhUjdlQ==
    
    -----END CERTIFICATE-----
    
  6. Ajoutez ce certificat au référentiel d'approbations client.

    Etant donné que vous créez un fichier de référentiel d'approbations, vous devez indiquer le mot de passe deux fois. Si vous ajoutez d'autres certificats à ce référentiel d'approbations client, vous devez l'entrer une seule fois.

    prompt> keytool -importcert -file serverA.cer -keystore trustStore.ts
    
    Enter keystore password:
    
    Re-enter new password:
    
    Owner: CN=serverA, OU=dev, O=itko, L=Dallas, ST=Texas, C=US
    
    Issuer: CN=serverA, OU=dev, O=itko, L=Dallas, ST=Texas, C=US
    
    Serial number: 4e155338
    
    Valid from: Thu Jul 07 16:33:28 EST 2011 until: Wed Oct 05 17:33:28 EST 2011
    
    Certificate fingerprints:
    
         MD5:  5B:10:F6:C8:02:3E:36:F5:AA:6D:FC:10:EF:F5:7F:54
    
         SHA1: 09:DA:8E:71:7C:D5:BB:44:89:14:13:07:F4:A1:C7:06:35:CD:BE:B1
    
         Signature algorithm name: SHA1withRSA
    
         Version: 3
    
    Trust this certificate? (Faire confiance à ce certificat) [no]:  yes
    
    Le certificat a été ajouté au référentiel de clés
    

    Vous disposez désormais d'une méthode cryptographique forte pour communiquer avec vos serveurs DevTest dans le cloud public. Le certificat doit être placé des deux côtés de deux composants DevTest pour qu'ils puissent communiquer.

  7. Si votre client communique avec plusieurs serveurs SSL distants, exécutez la même commande keytool pour importer le certificat dans le référentiel d'approbations.

    Remarque : Hormis la sécurité de niveau de transport (SSL), vous pouvez toujours activer des listes de contrôle d'accès précises. Les listes de contrôle d'accès permettent de demander l'authentification des utilisateurs par nom d'utilisateur et mot de passe. Ce type de sécurité est similaire à un site Web d'opérations bancaires qui utilise le protocole HTTPS, mais qui vous demande toujours de vous identifier.