

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Installation du fournisseur JCE pour le SDK AWS CloudHSM client 3
<a name="java-library-install"></a>

Avant de pouvoir utiliser le fournisseur JCE, vous avez besoin du AWS CloudHSM client. 

Le client est un démon qui établit une communication end-to-end cryptée avec le HSMs dans votre cluster. Le fournisseur JCE communique localement avec le client. Si vous n'avez pas installé ni configuré le package AWS CloudHSM client, faites-le maintenant en suivant les étapes décrites dans[Installer le client (Linux)](cmu-install-and-configure-client-linux.md). Une fois que vous avez installé et configuré le client, utilisez la commande suivante pour le démarrer. 

Le fournisseur JCE est uniquement pris en charge sur les systèmes d'exploitation Linux et compatibles. 

------
#### [ Amazon Linux ]

```
$ sudo start cloudhsm-client
```

------
#### [ Amazon Linux 2 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ CentOS 7 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ CentOS 8 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ RHEL 7 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ RHEL 8 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ Ubuntu 16.04 LTS ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ Ubuntu 18.04 LTS ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ Ubuntu 20.04 LTS ]

```
$ sudo systemctl start cloudhsm-client
```

------

Utilisez les sections suivantes pour installer, valider et fournir des informations d'identification au fournisseur.

**Topics**
+ [Étape 1 : Installation du fournisseur JCE](#install-java-library)
+ [Étape 2 : valider l'installation](#validate-install)
+ [Étape 3 : Fournissez les informations d'identification au fournisseur JCE](#java-library-credentials)

## Étape 1 : Installation du fournisseur JCE
<a name="install-java-library"></a>

Utilisez les commandes suivantes pour télécharger et installer le fournisseur JCE. Cette bibliothèque est prise en charge uniquement sur les systèmes d'exploitation Linux et compatibles. 

**Note**  
Pour la mise à niveau, consultez [Mettre à niveau le SDK client 3](client-upgrade.md).

------
#### [ Amazon Linux ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-jce-latest.el6.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el6.x86_64.rpm
```

------
#### [ Amazon Linux 2 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
```

------
#### [ CentOS 7 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
```

------
#### [ CentOS 8 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-jce-latest.el8.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el8.x86_64.rpm
```

------
#### [ RHEL 7 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
```

------
#### [ RHEL 8 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-jce-latest.el8.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el8.x86_64.rpm
```

------
#### [ Ubuntu 16.04 LTS ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client-jce_latest_amd64.deb
```

```
$ sudo apt install ./cloudhsm-client-jce_latest_amd64.deb
```

------
#### [ Ubuntu 18.04 LTS ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Bionic/cloudhsm-client-jce_latest_u18.04_amd64.deb
```

```
$ sudo apt install ./cloudhsm-client-jce_latest_u18.04_amd64.deb
```

------

Une fois que vous avez exécuté les commandes précédentes, vous pouvez trouver les fichiers du fournisseur JCE suivants :
+ `/opt/cloudhsm/java/cloudhsm-<version>.jar`
+ `/opt/cloudhsm/java/cloudhsm-test-<version>.jar`
+ `/opt/cloudhsm/java/hamcrest-all-1.3.jar`
+ `/opt/cloudhsm/java/junit.jar`
+ `/opt/cloudhsm/java/log4j-api-2.17.1.jar`
+ `/opt/cloudhsm/java/log4j-core-2.17.1.jar`
+ `/opt/cloudhsm/lib/libcaviumjca.so`

## Étape 2 : valider l'installation
<a name="validate-install"></a>

Effectuez des opérations de base sur le HSM pour valider l'installation.

**Pour valider l'installation du fournisseur JCE**

1. (Facultatif) Si besoin, utilisez la commande suivante pour installer Java dans votre environnement. 

------
#### [ Linux (and compatible libraries) ]

   ```
   $ sudo yum install java-1.8.0-openjdk
   ```

------
#### [ Ubuntu ]

   ```
   $ sudo apt-get install openjdk-8-jre
   ```

------

1. Utilisez les commandes suivantes pour définir les variables d'environnement nécessaires. Remplacez *<HSM user name>* et *<password>* par les informations d'identification d'un utilisateur cryptographique (CU).

   ```
   $ export LD_LIBRARY_PATH=/opt/cloudhsm/lib
   ```

   ```
   $ export HSM_PARTITION=PARTITION_1
   ```

   ```
   $ export HSM_USER=<HSM user name>
   ```

   ```
   $ export HSM_PASSWORD=<password>
   ```

1. Utilisez la commande suivante pour lancer le test des fonctionnalités de base. Si elle aboutit, la sortie de commande devrait ressembler à la sortie ci-dessous.

   ```
   $ java8 -classpath "/opt/cloudhsm/java/*" org.junit.runner.JUnitCore TestBasicFunctionality
   
   JUnit version 4.11
   .2018-08-20 17:53:48,514 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:33) - Adding provider.
   2018-08-20 17:53:48,612 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:42) - Logging in.
   2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:104) - Looking for credentials in HsmCredentials.properties
   2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:122) - Looking for credentials in System.properties
   2018-08-20 17:53:48,613 INFO [main] cfm2.LoginManager (LoginManager.java:130) - Looking for credentials in System.env
    SDK Version: 2.03
   2018-08-20 17:53:48,655 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:54) - Generating AES Key with key size 256.
   2018-08-20 17:53:48,698 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:63) - Encrypting with AES Key.
   2018-08-20 17:53:48,705 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:84) - Deleting AES Key.
   2018-08-20 17:53:48,707 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:92) - Logging out.
   
   Time: 0.205
   
   OK (1 test)
   ```

## Étape 3 : Fournissez les informations d'identification au fournisseur JCE
<a name="java-library-credentials"></a>

HSMs devez authentifier votre application Java avant que l'application puisse les utiliser. Chaque application peut utiliser une session. HSMs authentifier une session en utilisant une méthode de connexion explicite ou implicite.

**Connexion explicite** : Cette méthode vous permet de fournir les informations d’identification CloudHSM directement dans l’application. Elle utilise la méthode `LoginManager.login()`, dans laquelle vous transmettez le nom d'utilisateur et le mot de passe du CU, ainsi que l’ID de partition du HSM. Pour plus d'informations sur l'utilisation de la méthode de connexion explicite, consultez l’exemple de code [Connexion à un HSM](https://github.com/aws-samples/aws-cloudhsm-jce-examples/blob/master/src/main/java/com/amazonaws/cloudhsm/examples/LoginRunner.java). 

**Connexion implicite** : Cette méthode vous permet de définir les informations de connexion CloudHSM dans un nouveau fichier de propriétés, dans les propriétés système ou en tant que variables d’environnement.
+ **Nouveau fichier de propriétés** : Créez un nouveau fichier intitulé `HsmCredentials.properties` et ajoutez-le dans le `CLASSPATH` de votre application. Le fichier doit contenir ce qui suit :

  ```
  HSM_PARTITION = PARTITION_1
  HSM_USER = <HSM user name>
  HSM_PASSWORD = <password>
  ```
+ **Propriétés système** : Définissez les informations d’identification par le biais des propriétés système lors de l’exécution de votre application. Les exemples suivants montrent deux manières de le faire :

  ```
  $ java -DHSM_PARTITION=PARTITION_1 -DHSM_USER=<HSM user name> -DHSM_PASSWORD=<password>
  ```

  ```
  System.setProperty("HSM_PARTITION","PARTITION_1");
  System.setProperty("HSM_USER","<HSM user name>");
  System.setProperty("HSM_PASSWORD","<password>");
  ```
+ **Variables d’environnement** : Définissez les informations d’identification en tant que variables d’environnement.

  ```
  $ export HSM_PARTITION=PARTITION_1
  $ export HSM_USER=<HSM user name>
  $ export HSM_PASSWORD=<password>
  ```

Les informations d'identification peuvent ne pas être disponibles si l'application ne les fournit pas ou si vous essayez une opération avant que le HSM n’authentifie la session. Dans ces cas, la bibliothèque de logiciels CloudHSM pour Java recherche les informations d'identification dans l'ordre suivant :

1. `HsmCredentials.properties`

1. Propriétés système

1. Variables d’environnement

**Gestion des erreurs**  
La gestion des erreurs est plus facile avec la méthode de connexion explicite qu’avec la méthode de connexion implicite. Lorsque vous utilisez la classe `LoginManager`, vous maîtrisez mieux la manière dont votre application gère les pannes. La méthode de connexion implicite rend la gestion des erreurs difficile à comprendre lorsque les informations d'identification ne sont pas valides ou que l' HSMs authentification de session pose problème.