Necesita ejecutar una macro de Word en un entorno donde AppLocker bloquea los scripts sin firmar. Sin una firma digital, AppLocker impide la ejecución de las macros VBA, incluso si usted mismo escribió la macro. Este artículo explica cómo obtener un certificado de firma de código, firmar su proyecto de macro VBA y configurar Word para que la macro firmada se ejecute según las reglas de AppLocker. Después de leerlo, podrá implementar macros firmadas que superen la aplicación de AppLocker sin deshabilitar las directivas de seguridad.
Puntos clave: Firmar una macro VBA de Word para AppLocker
- Certificado de firma de código (PKI o autofirmado): Se requiere para firmar digitalmente el proyecto de VBA; AppLocker solo confía en las macros firmadas por editores de confianza.
- Editor de VBA > Herramientas > Firma digital: La ruta de menú en Word para adjuntar un certificado al proyecto de macro activo.
- Regla de editor de AppLocker: Un tipo de regla que permite la ejecución según la huella digital del certificado, el nombre del editor y el nombre del producto de la macro firmada.
Por qué AppLocker bloquea las macros VBA sin firmar en Word
AppLocker es una característica de seguridad de Windows que controla qué aplicaciones y scripts pueden ejecutarse en un sistema. Cuando AppLocker se configura con una directiva de reglas de ejecutables o reglas de scripts, comprueba cada archivo en busca de una firma digital válida antes de permitir la ejecución. Las macros VBA incrustadas en documentos de Word se tratan como scripts en AppLocker. Si el proyecto de macro no está firmado o está firmado por un editor que no está en la lista de confianza, AppLocker lo bloquea por completo.
La causa raíz es que AppLocker no puede verificar el origen de una macro sin firmar. Sin una firma, la directiva trata la macro como código no confiable. Esto se aplica a todos los archivos habilitados para macros (.docm, .dotm, .xlsm, .pptm) abiertos desde cualquier ubicación, incluidos las unidades locales. Firmar el proyecto de macro con un certificado de firma de código crea una cadena de confianza verificable que AppLocker puede evaluar según sus reglas de editor.
Requisitos previos para la firma
Antes de comenzar, verifique lo siguiente:
- Tiene un certificado de firma de código. Las opciones incluyen un certificado de una entidad de certificación (CA) pública como DigiCert o Sectigo, o un certificado autofirmado creado con la herramienta del SDK de Windows MakeCert o el cmdlet de PowerShell New-SelfSignedCertificate. Se recomiendan los certificados de CA pública para entornos de producción porque Windows los confía automáticamente.
- El certificado debe estar instalado en el almacén de certificados Personal del equipo, en Usuario actual o Equipo local.
- Tiene acceso a Word con la pestaña Desarrollador habilitada. Vaya a Archivo > Opciones > Personalizar cinta de opciones y marque la casilla Desarrollador.
- Está trabajando con un documento habilitado para macros (.docm o .dotm) que contiene el código VBA que desea firmar.
Pasos para firmar un proyecto de macro VBA en Word
- Abra el Editor de VBA
En Word, presione Alt+F11 para abrir el editor de Visual Basic para Aplicaciones. Como alternativa, haga clic en la pestaña Desarrollador y luego en Visual Basic. - Seleccione el proyecto de macro que desea firmar
En el panel Explorador de proyectos de la izquierda, haga clic en el nombre del proyecto que corresponde a su documento. El nombre del proyecto suele coincidir con el nombre de archivo del documento. - Abra el cuadro de diálogo Firma digital
En la barra de menús del Editor de VBA, haga clic en Herramientas > Firma digital. Se abre un cuadro de diálogo que muestra el estado actual de la firma del proyecto. - Elija un certificado
Haga clic en el botón Elegir. El cuadro de diálogo Seleccionar certificado muestra todos los certificados de firma de código instalados en su almacén de certificados Personal. Seleccione el certificado que desea usar y haga clic en Aceptar. Si el certificado no aparece en la lista, verifique que esté instalado correctamente y que tenga el uso mejorado de clave de firma de código. - Confirme la firma
De nuevo en el cuadro de diálogo Firma digital, el campo Nombre del certificado ahora muestra el nombre del sujeto del certificado seleccionado. Haga clic en Aceptar para aplicar la firma al proyecto de macro. - Guarde y cierre el documento
Guarde el documento habilitado para macros presionando Ctrl+S o haciendo clic en Archivo > Guardar. Cierre el Editor de VBA. El documento firmado ahora está listo para su distribución en un entorno protegido por AppLocker.
Configurar AppLocker para confiar en la macro firmada
Después de firmar la macro, debe crear una regla de editor de AppLocker que permita la ejecución según el certificado. Este paso lo realiza un administrador del sistema en el equipo de destino o mediante Directiva de grupo.
- Abra Directiva de seguridad local
Presione Win+R, escriba secpol.msc y presione Entrar. Navegue a Configuración de seguridad > Directivas de control de aplicaciones > AppLocker. - Cree una nueva regla de scripts
Haga clic con el botón derecho en Reglas de scripts y seleccione Crear regla nueva. Haga clic en Siguiente en la página Antes de comenzar. - Establezca la acción en Permitir
En la página Permisos, seleccione Permitir. Asegúrese de que Usuario o grupo esté establecido en Todos o en el grupo correspondiente. Haga clic en Siguiente. - Seleccione la condición Editor
En la página Condiciones, seleccione Editor como condición de la regla. Haga clic en Siguiente. - Busque un documento firmado
Haga clic en Examinar, localice el archivo .docm firmado y selecciónelo. AppLocker lee la firma digital y muestra la información del editor. Puede establecer el control deslizante en cualquier nivel: Editor, Nombre del producto, Nombre de archivo o Versión de archivo. Para la mayoría de los entornos, Editor o Nombre del producto es suficiente. Haga clic en Siguiente. - Asigne un nombre y finalice la regla
Asigne a la regla un nombre descriptivo, como “Macros de Word firmadas por la CA de la empresa”. Haga clic en Crear. La regla ahora permite que se ejecute cualquier macro firmada por ese editor.
Problemas comunes después de firmar macros para AppLocker
La macro sigue sin ejecutarse después de firmarla
Si AppLocker sigue bloqueando la macro firmada, verifique lo siguiente: El certificado usado para firmar debe estar presente en el almacén Editores de confianza del equipo de destino. Abra certlm.msc (certificados del equipo local) o certmgr.msc (certificados del usuario actual) y compruebe que la cadena de certificados de la CA esté instalada en Entidades de certificación raíz de confianza y que el certificado de firma de código esté en Editores de confianza. Confirme también que la regla de AppLocker haga referencia al editor correcto y que el ámbito de la regla incluya la cuenta de usuario que abre el documento.
Word muestra el error “La firma digital no es válida”
Este error se produce cuando el certificado ha expirado o la firma se aplicó a un proyecto que se modificó después de firmarlo. Abra el Editor de VBA, vaya a Herramientas > Firma digital y verifique la fecha de expiración del certificado. Si el certificado ha expirado, obtenga uno nuevo y vuelva a firmar el proyecto. Cualquier cambio en el código después de firmar invalida la firma, así que firme siempre como último paso antes de la distribución.
Certificado autofirmado no confiado por AppLocker
Windows no confía automáticamente en los certificados autofirmados. Para usar un certificado autofirmado en un entorno de AppLocker, debe instalar manualmente su certificado raíz en el almacén Entidades de certificación raíz de confianza de cada equipo de destino. Use certlm.msc para importar el archivo .cer. Sin este paso, AppLocker trata la firma como no confiable y bloquea la ejecución.
Certificado autofirmado frente a certificado firmado por CA para la firma de macros VBA
| Elemento | Certificado autofirmado | Certificado firmado por CA |
|---|---|---|
| Costo | Gratis | Tarifa anual de la CA |
| Confianza predeterminada | No es de confianza; requiere instalación manual en cada equipo | De confianza automáticamente si la raíz de la CA está en el almacén Raíz de confianza de Windows |
| Complejidad de implementación | Alta; se debe distribuir el certificado raíz mediante Directiva de grupo o manualmente | Baja; no se necesita distribución adicional de certificados |
| Recomendado para | Pruebas, equipos internos pequeños | Entornos de producción empresariales |
Ambos tipos de certificado producen una firma digital válida que AppLocker puede evaluar. La diferencia clave es la configuración de la cadena de confianza necesaria para los certificados autofirmados.
Ahora puede firmar proyectos de macro VBA en Word con un certificado de firma de código y configurar AppLocker para permitir que esas macros firmadas se ejecuten. Pruebe el documento firmado en un equipo con AppLocker aplicado para confirmar que la regla de editor funciona según lo esperado. Para la implementación continua de macros, considere automatizar el proceso de firma con un script de compilación que use la herramienta de línea de comandos SignTool.exe, que puede firmar proyectos de macro de Office sin abrir manualmente el Editor de VBA.