2012-06-27 20 views
22

He emitido un certificado de firma de código de un servidor de certificados. También me he emitido el certificado raíz del mismo servidor de certificados. El certificado raíz existe en las tiendas de certificados de Usuario actual y Computadora local dentro de la carpeta Autoridades de certificación de raíz de confianza. tengo éxito firmaron un DLL utilizando el asistente signtool.exe:¿Por qué mi certificado de raíz no es de confianza?

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe" signwizard <MyDLLName>.dll 

Sin embargo, cuando intento verificar mi DLL, falla la verificación con el siguiente error:

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe" verify <MyDLLName>.dll 
SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. 
SignTool Error: File not valid: <MyDLLName>.dll 

¿Por qué es esto sucediendo? Pensé que tener el certificado raíz en la carpeta Autoridades de certificación de raíz de confianza verificaría la DLL.

Respuesta

49

En su comando verificar, agregue la opción/pa para indicarle que use la Política de verificación de autenticación predeterminada en lugar de la Política de verificación de controladores de Windows, lo que significa que revisará los almacenes de certificados en lugar del conjunto limitado de CA. conductores.

Mire aquí para ver más opciones: http://msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.90).aspx

+0

Hola Kevin, estoy tratando de llamar a un servicio WCF organizada por certificado auto firmado, será la instalación de SSL a nivel local con el trabajo por encima de la opción? ¿Puedes enviar el comando completo para usar? Tengo ambos archivos .pfx y .cer, pero ASP.net no puede confiar en el proveedor de SSL. –

+0

@SanjayZalke Solo puede usar las herramientas de administración de certificados de Windows para instalar el certificado en la carpeta Trusted Root CAs de la computadora local. Puede iniciarlo a través de mmc.exe y agregar el complemento de certificado. –

+5

Una nota importante aquí es que si está haciendo esto con un CONTROLADOR DE KERNEL (.sys), esto no funcionará, porque los certificados de raíz raíz de Microsoft finalmente deben confiar en los controladores de kernel. La verificación en sí misma pasará si agrega la opción/pa mencionada, pero el controlador no se cargará en realidad, seguirá indicando Error de controlador sin firmar. Durante el arranque, el kernel no tiene acceso al Almacén de certificados completo, por lo que solo puede ver el conjunto limitado de confianzas Microsoft de CA con los controladores. – Syclone0044

Cuestiones relacionadas