

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Migre su proveedor de almacenamiento de claves (KSP) del SDK de AWS CloudHSM cliente 3 al SDK de cliente 5
<a name="ksp-migrate-to-sdk-5"></a>

En este tema, se explica cómo migrar el [proveedor de almacenamiento de claves (KSP)](ksp-library.md) del SDK de cliente 3 al SDK de cliente 5 de AWS CloudHSM . La versión más reciente del SDK de AWS CloudHSM cliente es la 5.16. Para obtener información sobre los beneficios de la migración, consulte [Ventajas del SDK 5 para AWS CloudHSM clientes](client-sdk-5-benefits.md).

En AWS CloudHSM, se utiliza el kit de desarrollo de software (SDK) de AWS CloudHSM cliente para realizar operaciones criptográficas. El SDK de cliente 5 es el SDK principal que recibe nuevas características y actualizaciones de compatibilidad con la plataforma.

Para consultar las instrucciones de migración para todos los proveedores, consulte [Migración del SDK de AWS CloudHSM cliente 3 al SDK de cliente 5](client-sdk-migration.md).

## Migración a Client SDK 5
<a name="ksp-migrate-steps"></a>

1. Detenga el daemon de cliente para el SDK de cliente 3.

   ```
   PS C:\> Stop-Service "AWS CloudHSM Client"
   ```

1. Instale el proveedor de almacenamiento de claves (KSP) del SDK de cliente 5 en la instancia de Windows Server. Para obtener instrucciones, consulte [Instale el proveedor de almacenamiento de claves (KSP) para el SDK AWS CloudHSM 5 del cliente](ksp-library-install.md).

1. Configure el proveedor de almacenamiento de claves (KSP) del SDK de cliente 5 mediante el nuevo formato de archivo de configuración y la herramienta de inicialización por línea de comandos. Para obtener instrucciones, consulte [Proceso de arranque del SDK de cliente](cluster-connect.md#connect-how-to).

1. El proveedor de almacenamiento de claves (KSP) para AWS CloudHSM Client SDK 5 incluye un modo de SDK3 compatibilidad para admitir los archivos de referencia clave generados en él. SDK3 Para obtener más información, consulte [SDK3 modo de compatibilidad para el proveedor de almacenamiento de claves (KSP) para AWS CloudHSM](ksp-library-configs-sdk3-compatibility-mode.md).
**nota**  
Debe habilitar el modo de SDK3 compatibilidad cuando utilice los archivos de referencia clave generados por el SDK de cliente 3 con el SDK de cliente 5.

## Migración a nuevas instancias de Windows Server
<a name="ksp-migrate-new-windows"></a>

1. Complete todos los pasos que se indican en [Migración al SDK de cliente 5](#ksp-migrate-steps) en las nuevas instancias de Windows Server.

1. 

**Cómo comprobar la existencia de archivos de referencia de claves**  
En la instancia original de Windows Server, compruebe la existencia de archivos de referencia de claves en `C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP\GlobalPartition`.
   + Si existen archivos de referencia de claves, copie todo el contenido bajo `C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP`, incluido `GlobalPartition`, en la misma ruta de directorio de la nueva instancia de Windows Server. Cree el directorio si no existe.
   + Si no existen archivos de referencia de claves, use `cloudhsm-cli key generate-file --encoding ksp-key-reference` en la nueva instancia de Windows Server para crearlos. Para obtener instrucciones, consulte [Generación de referencias de claves KSP (Windows)](cloudhsm_cli-key-generate-file.md#key-generate-ksp-key-reference).

1. 

**Verificación del certificado raíz**  
Revise el certificado raíz en las autoridades de certificación raíz confiables:

   ```
   PS C:\Users\Administrator\Desktop> certutil -store Root
   
   Root "Trusted Root Certification Authorities"
   ================ Certificate 0 ================
   Serial Number: certificate-serial-number
   Issuer: CN=MYRootCA
    NotBefore: 2/5/2020 1:38 PM
    NotAfter: 2/5/2021 1:48 PM
    Issuer: CN=MYRootCA
   Signature matches Public Key
   Root Certificate: Subject matches Issuer
   Cert Hash(sha1): cert-hash
   No key provider information
   Cannot find the certificate and private key for decryption.
   CertUtil: -store command completed successfully.
   ```
**nota**  
Anote el número de serie del certificado para usarlo en el siguiente paso.

1. 

**Exportación del certificado raíz**  
Exportar el certificado raíz a un archivo:

   ```
   certutil -store Root certificate-serial-number root-certificate-name.cer
   ```

1. 

**Verificación del certificado de backend HSM**  
Revise el certificado de backend HSM en el almacén de certificados personales.

   ```
   PS C:\Users\Administrator\Desktop> certutil -store My
   
   my "Personal"
   ================ Certificate 0 ================
   Serial Number: certificate-serial-number
   Issuer: CN=MYRootCA
    NotBefore: 2/5/2020 1:38 PM
    NotAfter: 2/5/2021 1:48 PM
   Subject: CN=www.mydomain.com, OU=Certificate Management, O=Information Technology, L=Houston, S=Texas, C=US
   Non-root Certificate
   Cert Hash(sha1): cert-hash
     Key Container = key-container-name
     Provider = Cavium Key Storage Provider
   Private key is NOT exportable
   Encryption test passed
   CertUtil: -store command completed successfully.
   ```
**nota**  
Anote el número de serie del certificado para usarlo en el siguiente paso.

1. 

**Exportación del certificado de backend HSM**  
Exportar el certificado de backend HSM a un archivo:

   ```
   certutil -store My certificate-serial-number signed-certificate-name.cer
   ```

1. 

**Importación del certificado raíz**  
En la nueva instancia de Windows:

   1. Copie el archivo CA raíz a la nueva instancia de Windows

   1. Importe el certificado:

      ```
      certutil -addstore Root root-certificate-name.cer
      ```

1. 

**Verificación de la instalación del certificado raíz**  
Confirme que el certificado raíz esté correctamente instalado.

   ```
   PS C:\Users\Administrator\Desktop> certutil -store Root
   
   Root "Trusted Root Certification Authorities"
   ================ Certificate 0 ================
   Serial Number: certificate-serial-number
   Issuer: CN=MYRootCA
    NotBefore: 2/5/2020 1:38 PM
    NotAfter: 2/5/2021 1:48 PM
    Issuer: CN=MYRootCA
   Signature matches Public Key
   Root Certificate: Subject matches Issuer
   Cert Hash(sha1): cert-hash
   No key provider information
   Cannot find the certificate and private key for decryption.
   CertUtil: -store command completed successfully.
   ```

1. 

**Importación del certificado de backend HSM**  
En la nueva instancia de Windows:

   1. Copie el certificado de backend HSM en la nueva instancia de Windows

   1. Importe el certificado:

      ```
      certutil -addstore My signed-certificate-name.cer
      ```

1. 

**Verificación de la instalación del certificado de backend HSM**  
Confirme que el certificado de backend HSM esté correctamente instalado:

   ```
   PS C:\Users\Administrator\Desktop> certutil -store My
   
   my "Personal"
   ================ Certificate 0 ================
   Serial Number: certificate-serial-number
   Issuer: CN=MYRootCA
    NotBefore: 2/5/2020 1:38 PM
    NotAfter: 2/5/2021 1:48 PM
   Subject: CN=www.mydomain.com, OU=Certificate Management, O=Information Technology, L=Houston, S=Texas, C=US
   Non-root Certificate
   Cert Hash(sha1): cert-hash
   No key provider information
   Cannot find the certificate and private key for decryption.
   CertUtil: -store command completed successfully.
   ```
**nota**  
Anote el número de serie del certificado para usarlo en los pasos posteriores.

1. 

**Creación de un archivo de referencia de claves (opcional)**  
Complete este paso solo si necesita crear un nuevo archivo de referencia de claves. De lo contrario, continúe con el próximo paso.
**nota**  
Esta característica solo está disponible en la versión 5.16.0 del SDK y posteriores.

   1. Instale [OpenSSL](https://slproweb.com/products/Win32OpenSSL.html) y extraiga el módulo:

      ```
      openssl x509 -in signed-certificate-name.cer -modulus -noout
      ```
**nota**  
El comando de OpenSSL genera el módulo en el formato: `Modulus=modulus-value`. Anote *modulus-value* esto para usarlo en el siguiente comando.

   1. Creación del archivo de referencia de claves con la CLI de CloudHSM. Consulte [Generación de referencias de claves KSP (Windows)](cloudhsm_cli-key-generate-file.md#key-generate-ksp-key-reference):

      ```
      & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" key generate-file --encoding ksp-key-reference --filter attr.class=private-key attr.modulus=0xmodulus-value
      ```
**nota**  
Los *modulus-value* argumentos del comando CLI de CloudHSM deben ir precedidos de un `0x` prefijo para indicar el formato hexadecimal.  
Los archivos de referencia de claves se crean en `C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP\GlobalPartition`.

1. 

**Creación de la configuración de reparación**  
Cree un archivo denominado `repair.txt` con el siguiente contenido:

   ```
   [Properties]
   11 = "" ; Add friendly name property
   2 = "{text}" ; Add Key Provider Information property
   _continue_="Container=key-container-name&"
   _continue_="Provider=Cavium Key Storage Provider&"
   _continue_="Flags=0&"
   _continue_="KeySpec=2"
   ```
**nota**  
*key-container-name*Sustitúyalos por el nombre de archivo de referencia clave de. `C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP\GlobalPartition`

1. 

**Reparación del almacén de certificados**  
Ejecute el comando de reparación:

   ```
   certutil -repairstore My certificate-serial-number repair.txt
   ```
**nota**  
El número de serie del certificado se obtiene en los pasos anteriores al verificar la instalación del certificado de backend HSM.

1. 

**Verificación de la asociación del certificado.**  
Confirme que el certificado esté correctamente asociado:

   ```
   PS C:\Users\Administrator\Desktop> certutil -store My
   
   my "Personal"
   ================ Certificate 0 ================
   Serial Number: certificate-serial-number
   Issuer: CN=MYRootCA
    NotBefore: 2/5/2020 1:38 PM
    NotAfter: 2/5/2021 1:48 PM
   Subject: CN=www.mydomain.com, OU=Certificate Management, O=Information Technology, L=Houston, S=Texas, C=US
   Non-root Certificate
   Cert Hash(sha1): cert-hash
     Key Container = key-container-name
     Provider = Cavium Key Storage Provider
   Private key is NOT exportable
   ERROR: Could not verify certificate public key against private key
   CertUtil: -store command completed successfully.
   ```

   Verifique que la salida muestre:
   + El nombre correcto del contenedor de claves
   + El proveedor de almacenamiento de claves Cavium
   + `ERROR: Could not verify certificate public key against private key` se trata de un problema conocido. Consulte [Problema: ña verificación de un almacén de certificados falla](ki-ksp-sdk.md#ki-ksp-1)

1. 

**Prueba de la aplicación**  
Antes de completar la migración:

   1. Pruebe la aplicación en el entorno de desarrollo

   1. Actualice el código para resolver cualquier cambio incompatible

   1. Para obtener orientación específica de la aplicación, consulte [Integración de aplicaciones de terceros con AWS CloudHSM](third-party-applications.md)

## Verificación de la migración
<a name="ksp-migrate-verification"></a>

Después de completar los pasos de migración, verifique que:
+ Los certificados estén correctamente instalados en los almacenes de certificados correctos
+ Los archivos de referencia de claves estén presentes en la ubicación correcta
+ La aplicación pueda realizar operaciones criptográficas con los certificados migrados

## Resolución de problemas
<a name="ksp-migrate-troubleshooting"></a>

Si tiene problemas durante la migración, compruebe lo siguiente:
+ Todos los certificados se hayan exportado correctamente del sistema de origen
+ Los números de serie de los certificados coincidan entre los sistemas
+ Los nombres de los contenedores de claves en el archivo repair.txt coincidan con los archivos de referencia de claves
+ SDK3 el modo de compatibilidad está activado si se utilizan archivos SDK3 de referencia clave generados por ellos

## Temas relacionados
<a name="ksp-migrate-to-sdk-5-seealso"></a>
+ [Mejores prácticas para AWS CloudHSM](best-practices.md)