Generación y exportación de certificados para conexiones de punto a sitio con PowerShell

Las conexiones de punto a sitio utilizan certificados para realizar la autenticación. En este artículo, se muestra cómo crear un certificado raíz autofirmado y generar certificados cliente con PowerShell en Windows 10 o posterior, o Windows Server 2016. Si busca otras instrucciones de certificado, vea los artículos sobre certificados con Linux o certificados con MakeCert.

Los pasos de este artículo se aplican a Windows 10 o posterior, o Windows Server 2016. Los cmdlets de PowerShell que se usan para generar certificados forman parte del sistema operativo y no funcionan en otras versiones de Windows. El equipo con Windows 10 o posterior, o Windows Server 2016 solo es necesario para generar los certificados. Una vez que se generan los certificados, puede cargarlos o instalarlos en cualquier sistema operativo cliente compatible.

Si no tiene acceso a un equipo con Windows 10 o posterior, o Windows Server 2016, puede usar MakeCert para generar certificados. Los certificados que genera mediante cualquiera de estos métodos pueden instalarse en cualquier sistema operativo cliente compatible.

Creación de un certificado raíz autofirmado

Use el cmdlet New-SelfSignedCertificate para crear un certificado raíz autofirmado. Para obtener información adicional sobre los parámetros, consulte New-SelfSignedCertificate.

  1. En un equipo con Windows 10 o posterior, o con Windows Server 2016, abra una consola de Windows PowerShell con privilegios elevados. Estos ejemplos no funcionan en la opción "Pruébelo" de Azure Cloud Shell. Debe ejecutar estos ejemplos localmente.

  2. Utilice el ejemplo siguiente para crear el certificado raíz autofirmado. En el ejemplo siguiente se crea un certificado raíz firmado automáticamente con el nombre "P2SRootCert" que se instala automáticamente en "Certificates-Current User\Personal\Certificates". Puede ver el certificado si abre certmgr.msc, o bien Administrar certificados de usuario.

    Ejecute el siguiente ejemplo con las modificaciones necesarias.

    $cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
    -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable `
    -HashAlgorithm sha256 -KeyLength 2048 `
    -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign
    
  3. Deje abierta la consola de PowerShell y continúe con los pasos siguientes para generar un certificado de cliente.

Generación de un certificado de cliente

Cada equipo cliente que se conecta a una red virtual con una conexión de punto a sitio debe tener instalado un certificado de cliente. Puede generarlo desde un certificado raíz autofirmado y, luego, exportar e instalar el certificado de cliente. Si no está instalado el certificado de cliente, se produce un error de autenticación.

Los pasos siguientes lo llevan por el proceso de generación de un certificado de cliente a partir de un certificado autofirmado. Puede generar varios certificados de cliente desde el mismo certificado raíz. Al generar certificados de cliente mediante los pasos siguientes, el certificado de cliente se instala automáticamente en el equipo que se usó para generar el certificado. Si desea instalar un certificado de cliente en otro equipo cliente, puede exportar el certificado.

Los ejemplos usan el cmdlet New-SelfSignedCertificate para generar un certificado de cliente que expira en un año. Para obtener información adicional sobre los parámetros (por ejemplo, cómo establecer un valor de expiración diferente para el certificado de cliente), consulte New-SelfSignedCertificate.

Ejemplo 1: sesión de consola de PowerShell aún abierta

Use este ejemplo si no ha cerrado la consola de PowerShell después de crear el certificado raíz autofirmado. Este ejemplo continúa desde la sección anterior y usa la variable "$cert" declarada. Si cerró la consola de PowerShell después de crear el certificado raíz autofirmado o va a crear más certificados de cliente en una nueva sesión de consola de PowerShell, siga los pasos del Ejemplo 2.

Modifique y ejecute el ejemplo para generar un certificado de cliente. Si ejecuta el ejemplo siguiente sin modificación alguna, el resultado es un certificado de cliente con el nombre "P2SChildCert". Si quiere agregar algo más al nombre del certificado secundario, modifique el valor CN. No cambie el valor de TextExtension cuando ejecute este ejemplo. El certificado de cliente que genera se instala automáticamente en la ruta del equipo "Certificates - Current User\Personal\Certificates".

New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
-Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" `
-Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")

Ejemplo 2: nueva sesión de consola de PowerShell

Si va a crear más certificados de cliente, o si no usa la misma sesión de PowerShell que ha utilizado para crear el certificado raíz autofirmado, siga estos pasos:

  1. Identifique el certificado raíz autofirmado que se instaló en el equipo. Este cmdlet devuelve una lista de certificados que están instalados en el equipo.

    Get-ChildItem -Path "Cert:\CurrentUser\My"
    
  2. Busque el nombre del firmante de la lista devuelta y, luego, copie la huella digital que se encuentra junto a él en un archivo de texto. En el ejemplo siguiente, hay dos certificados. El nombre CN es el nombre del certificado raíz autofirmado a partir del que va a generar un certificado secundario. En este caso, "P2SRootCert".

    Thumbprint                                Subject
    ----------                                -------
    AED812AD883826FF76B4D1D5A77B3C08EFA79F3F  CN=P2SChildCert4
    7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655  CN=P2SRootCert
    
  3. Declare una variable para el certificado raíz con la huella digital del paso anterior. Reemplace la huella digital con la del certificado raíz a partir del que va a generar un certificado secundario.

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\<THUMBPRINT>"
    

    Por ejemplo, al usar la huella digital de P2SRootCert del paso anterior, la variable tendrá el aspecto similar al siguiente:

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
    
  4. Modifique y ejecute el ejemplo para generar un certificado de cliente. Si ejecuta el ejemplo siguiente sin modificación alguna, el resultado es un certificado de cliente con el nombre "P2SChildCert". Si quiere agregar algo más al nombre del certificado secundario, modifique el valor CN. No cambie el valor de TextExtension cuando ejecute este ejemplo. El certificado de cliente que genera se instala automáticamente en la ruta del equipo "Certificates - Current User\Personal\Certificates".

    New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
    -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `
    -HashAlgorithm sha256 -KeyLength 2048 `
    -CertStoreLocation "Cert:\CurrentUser\My" `
    -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")
    

Exportación de la clave pública del certificado raíz (.cer)

Después de crear un certificado raíz autofirmado, exporte el archivo .cer de clave pública de certificado de raíz (no la clave privada). Este archivo se cargará más adelante en Azure. Los pasos siguientes le ayudan a exportar el archivo .cer para el certificado raíz autofirmado:

  1. Para obtener un archivo .cer del certificado, abra Administrar certificados de usuario. Busque el certificado raíz autofirmado; normalmente se encuentra en Certificados - Usuario actual\Personal\Certificados y haga clic en el botón derecho. Haga clic en Todas las tareas y, luego, en Exportar. Se abre el Asistente para exportar certificados. Si no encuentra el certificado en Usuario actual\Personal\Certificados, puede que haya abierto de forma accidental "Certificados – equipo Local", en lugar de "Certificados - Usuario actual"). Si desea abrir el Administrador de certificados en el ámbito del usuario actual mediante PowerShell, escriba certmgr en la ventana de la consola.

    Screenshot shows the Certificates window for the current user with Certificates selected and a contextual menu with Export selected from All Tasks.

  2. En el asistente, haga clic en Siguiente.

    Export certificate

  3. Seleccione No exportar la clave privada y, después, haga clic en Siguiente.

    Do not export the private key

  4. En la página Formato de archivo de exportación, seleccione X.509 codificado base 64 (.CER) y, luego, haga clic en Siguiente.

    Base-64 encoded

  5. En Archivo que se va a exportar, haga clic en Examinar para ir a la ubicación a la que desea exportar el certificado. En Nombre de archivo, asígnele un nombre al archivo de certificado. A continuación, haga clic en Siguiente.

    Screenshot shows the Certificate Export Wizard with a File Name text box and a Browse option.

  6. Haga clic en Finalizar para exportar el certificado.

    Screenshot shows the Certificate Export Wizard with the selected settings.

  7. El certificado se exportó correctamente.

    Screenshot shows a message that the export was successful.

  8. El certificado exportado tiene un aspecto similar al siguiente:

    Screenshot shows a certificate icon and file name with the c e r file name extension.

  9. Si abre el certificado exportado mediante el Bloc de notas, verá algo parecido a este ejemplo. La sección en azul contiene la información que se carga en Azure. Si abre el certificado con el Bloc de notas y no se parece a este, normalmente eso significa que no lo exportó mediante el formato X.509 codificado base 64 (. CER). Además, si desea utilizar un editor de texto diferente, debe comprender que algunos editores pueden introducir formatos no deseados en segundo plano. Esto puede crear problemas al cargar el texto de este certificado en Azure.

    Open with Notepad

Exportación del certificado raíz autofirmado y clave privada para almacenarlo (opcional)

Puede que desee exportar el certificado autofirmado y almacenarlo de manera segura como copia de seguridad. Si es necesario, más adelante puede instalarlo en otro equipo y generar más certificados de cliente. Para exportar el certificado raíz autofirmado como archivo .pfx, seleccione el certificado raíz y use los mismos pasos descritos en Exportación de un certificado de cliente.

Exportación del certificado de cliente

Al generar un certificado de cliente, se instala automáticamente en el equipo que usó para generarlo. Si desea instalar el certificado de cliente en otro equipo cliente, debe exportar el certificado de cliente que ha generado.

  1. Para exportar un certificado de cliente, abra Administrar certificados de usuario. De forma predeterminada, los certificados de cliente que ha generado se encuentran en "Certificates - Current User\Personal\Certificates". Haga clic con el botón derecho en el certificado de cliente que desee exportar y haga clic en Todas las tareas y en Exportar para abrir el Asistente para exportar certificados.

    Screenshot shows the Certificates window for the current user with Certificates selected and Export selected from All Tasks.

  2. En Asistente para exportar certificados, haga clic en Siguiente para continuar.

    Screenshot shows the Certificate Export Wizard Welcome message.

  3. Seleccione Exportar la clave privada y, después, haga clic en Siguiente.

    export private key

  4. En la página Formato de archivo de exportación, deje seleccionados los valores predeterminados. Asegúrese de que Incluir todos los certificados en la ruta de certificación si es posible esté seleccionada. Esta opción también exporta la información del certificado raíz que se requiere para una autenticación correcta del cliente. Sin ella, se produce un error de autenticación del cliente porque este no tiene el certificado raíz de confianza. A continuación, haga clic en Siguiente.

    export file format

  5. En la página Seguridad , debe proteger la clave privada. Si decide usar una contraseña, asegúrese de anotarla o de recordar la contraseña que estableció para este certificado. A continuación, haga clic en Siguiente.

    Screenshot shows the Certificate Export Wizard Security page with the password entered and confirmed and Next highlighted.

  6. En Archivo que se va a exportar, haga clic en Examinar para ir a la ubicación a la que desea exportar el certificado. En Nombre de archivo, asígnele un nombre al archivo de certificado. A continuación, haga clic en Siguiente.

    file to export

  7. Haga clic en Finalizar para exportar el certificado.

    Screenshot shows the Certificate Export Wizard with the entered settings.

Instalación de un certificado de cliente exportado

Cada cliente que se conecta a la red virtual a través de una conexión de punto a sitio requiere que haya un certificado de cliente instalado localmente.

Para instalar un certificado de cliente, consulte cómo instalar un certificado de cliente para conexiones de punto a sitio.

Pasos siguientes

Continúe con la configuración de punto a sitio.