Cerrar
InicioCertificadosGPO: Instalación Certificados de Usuario

GPO: Instalación Certificados de Usuario

Instalar_certificado_usuario_1.jpgSeguro que en alguna ocasión habéis tenido que instalar un certificado digital a uno o varios usuarios de la empresa. Esto no es lo que se supone que se debe hacer, puesto que el certificado suele ser personal  o de empresa, si es de empresa solo el administrador de la misma debería poder utilizarlo. Esto puede ser un problema de seguridad en algunos casos (depende de a quien se lo instalemos), per  otros es una forma de poder agilizar ciertos trabajos compartidos entre varias personas. Cuestiones a parte del porque varios usuarios deben tener disponible el mismo certificado, vamos a ver como podemos automatizar de alguna forma el proceso de instalación sin que el usuario tenga que intervenir en algún momento.

Esta "funcionalidad" no está soportada por las GPO directamente, pero si podemos crear un pequeño script en PowerShell o CMD para instalar el certificado a los distintos usuarios del dominio. La idea es crear una GPO en la cual configuraremos que ejecute un script al inicio de sesión, el cual instalará  nuestro certificado personal. Lo primero que debemos hacer es tener una carpeta compartida con el certificado que queremos utilizar, puesto que lanzaremos el script desde la sesión del usuario y debe poder acceder a dicho certificado. Desde PowerShell tenemos el siguiente cmdlet para importar el certificado en el store de certificados del usuario:

NOMBRE
    Import-PfxCertificate
 
SINTAXIS
    Import-PfxCertificate [-FilePath] <string> [[-CertStoreLocation] <string>] [-Exportable] [-Password  <securestring>] [-WhatIf] [-Confirm]  [<CommonParameters>]
 
En nuestro caso el cmdlet sería el siguiente:
Import-PfxCertificate -FilePath "\\asirsl.com\Privado$\Certificados\certificadoASIRLAB.pfx" Cert:\CurrentUser\My
 
Ahora lo que tenemos que hacer primero es crear el script y en la GPO añadirlo a la directiva correspondiente para que se ejecute en el inicio de sesión del usuario. Antes de nada tenemos que crear el script de PowerShell, únicamente debemos abrir un notepad y pegar el cmdlet anterior (Import-PfxCertificate -FilePath "\\asirsl.com\Privado$\Certificados\certificadoASIRLAB.pfx"Cert:\CurrentUser\My) y guardarlo con extensión .PS1. Ahora creamos la GPO y lo añadimos como script de inicio de sesión en la configuración del usuario:
Instalar_certificado_usuario_2.jpg
Instalar_certificado_usuario_3.jpg
Instalar_certificado_usuario_4.jpg
Como esto solo queremos que se aplique a un usuario o grupos de usuarios, lo que debemos hacer es filtrar la GPO para identificar a quien se aplicará. Esto es muy sencillo, si solo queremos que se aplique a un usuario vamos a la pestaña Delegación y quitamos el grupo Usuarios Autenticados y añadimos al usuario al que queremos que se aplique la directiva. En caso de que fuese a varios usuarios, la idea sería crear un grupo () y configurar lo permisos de la siguiente forma: Leer y Aplicar directiva de grupo marcando la casilla de Permitir
Instalar_certificado_usuario_5.jpg
Ahora una vez que el usuario inicie sesión, se ejecutará el script y se instalará el certificado que hemos compartido. Tengo claro que los permisos de la carpeta compartida en donde está el fichero, deben ser lo más restringidos posibles, el usuario solo necesita acceso de lectura. Y solo deberían poder acceder al certificado el usuario o usuarios que necesiten tenerlo instalado. También sería una buena práctica que una vez instalado lo quitásemos de la red.
 
Una vez que el usuario ha iniciado sesión, podemos comprobar que el certificado se ha instalado correctamente desde la pestaña Contenido y la opción Certificados
Instalar_certificado_usuario_6.jpg
Recomendación: yo os recomiendo que primero lo probéis ejecutándolo manualmente vosotros y ver que el resultado es el esperado, de esta forma nos aseguramos que el script funciona correctamente y que el problema no podrá ser el código del script.
Instalar_certificado_usuario_7.jpg
 
También comentaros que todos los certificados que contienen la clave privada deberían haber sido exportados con una contraseña y el cmdlet sería el siguiente:
 
Import-PfxCertificate -FilePath "\\asirsl.com\Privado$\Certificados\certificadoASIRLAB.pfx" Cert:\CurrentUser\My -Password contraseña_del_certificado

 
Si el certificado fuese para los equipos y no para los usuarios, el cmdlet sería el siguiente y la GPO se configuraría para que el script fuese a nivel de configuración de equipo:
 
Import-PfxCertificate -FilePath "\\asirsl.com\Privado$\Certificados\certificadoASIRLAB.pfx" Cert:\LocalMachine\My -Password contraseña_del_certificado
Habréis comprobado que es un proceso sencillo y cómodo, desde luego no es lo más seguro pero si es funcional. Seguramente tendréis muchos clientes que no quieran adquirir Tokens USB o  SmartCards para almacenar su certificados, pero con esto podemos hacer la instalación más o menos sencilla  para nosotros y transparente para los usuarios. Como sabéis en Windows 8 podemos configurar SmartCard virtuales. Esto lo veremos en un próximo artículo, lo probaremos para iniciar sesión en el dominio y para almacenar el certificado de la FNMT o nuestra CA.
 
Os recuerdo que debemos tener mucho cuidado con los certificados por las responsabilidades legales que conllevan. Yo solo he mostrado como podéis hacerlo, pero no que sea la mejor forma  de darles acceso a los usuarios a un certificado. Lo suyo sería disponer de un dispostivo de seguridad como los Tokens o SmartCards.
 
Si queréis ampliar información sobre como importar certificados desde PowerShell aquí tenéis un enlace de MSFT: Import-PfxCertificate
 
Espero que os sea de utilidad!!!
GPO: Filtros WMI
Suite de herramienta

sbuytrago@asirsl.com

7 COMENTARIOS
  • Ramon / 3 mayo, 2021

    Yo te expongo el problema y me comentas que piensas.:

    Windows server 2012. 5 chicas entran al servidor por escritorio remoto. No publicado. En local.

    5 usuarios.

    Cada una de ellas en sus navegadores tienen el certificado de la empresa instalado.

    El problema es que cuando un usuario entra a seg-social por ejemplo y le pide certificado le sale el listado para usarlo.

    Pero cuando va a firmar la ventana de aprobación le sale a la primera persona que haya logeado en el sistema.

    En su día me acuerdo que me baje un parche para esto en Microsoft. Pero llevo días buscando y no encuentro!!!!

    • Santiago Buitrago Reis / 16 mayo, 2021

      Hola:

      Por lo que comentas, pensaría que el certificado está instalado a nivel de equipo, pero eso no tendría sentido. Es que si lo instalas en cada sesión de usuario, a menos que se utilice alguna aplicación adicional para firmar, no debería mostrar más que los certificados que tienes en cada contenedor de certificados, no de usuario.

      Si en cada usuario abres la consola de certificados de usuario (certmgr.msc), solo ves sus certificados o todos? Si abres la consola de certificados locales de equipo (certlm.msc), que certificados tienes ahí?

      Un saludo

DEJA UN COMENTARIO

Este sitio web utiliza cookies. Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra política de cookies. ACEPTAR

Aviso de cookies
Share This