2009-08-13 25 views
8

¿Es posible dar permiso de lectura de asp.net al almacén de certificados?Permisos de ASP.net para el almacén de certificados raíz

En caso afirmativo, ¿cómo?

Si no ... ¿tengo que configurar el permiso manualmente por archivo de certificado?

En caso afirmativo, ¿dónde están físicamente estos archivos en la unidad de disco duro?

Respuesta

12

Generalmente se otorgan permisos a A certificado. Utilizo un método como este para encontrar el certificado personalizado y los permisos de concesión. Si está utilizando un certificado emitido por una entidad pública como Verisign, Thawte, etc., esto probablemente sea innecesario.

FindPrivateKey.exe My LocalMachine –n "CN=<certificate issuer>" 

... encontrará certificados en la máquina local en la tienda personal para un emisor en particular.

Nota: Si FindPrivateKey no está en su máquina local, descargar los ejemplos de WCF, incluyendo la herramienta FindPrivateKey, en http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21459

FindPrivateKey devuelve la ubicación de la clave privada del certificado, similar a

"C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030". 

ejecutar la línea de comandos para asignar permisos de acceso de sólo lectura a la identidad del proceso del servicio ASP.NET/WCF

cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030" /E /G "NT AUTHORITY\NETWORK SERVICE":R 

NOTA: Si está ejecutando Microsoft Windows® XP, otorgue permisos de certificado para la identidad ASPNET en lugar de la identidad NT Authority \ Network Service, porque el proceso IIS se ejecuta bajo la cuenta ASPNET en Windows XP.

Los certificados se pueden ver desde el complemento de MMC para certificados. Abra MMC, elija Archivo -> Agregar/Quitar complemento, haga clic en el botón Agregar y elija certificados. Desde aquí, tendrá que elegir la tienda adecuada (generalmente Cuenta de equipo - Computadora local para elementos ASP.NET) para administrar y luego puede ver/administrar los certificados.

Examine detenidamente las diferentes opciones de línea de comandos y asegúrese de tener una idea clara de qué son los certificados y cómo funcionan antes de otorgar los permisos.

+0

Gracias, he encontrado esta información muy útil. –

+1

La sintaxis para icacls.exe es: icacls.exe file/grant "user" :(R) – funwhilelost

+5

Para ver y establecer permisos de MMC, haga clic con el botón derecho en el certificado que necesita, en el menú contextual, seleccione Todas las tareas. . -> Administrar claves privadas ... –

-7

No me gusta mucho responder mis propias preguntas, pero una manera simple de deshacerse de este error es simplemente dar acceso completo al servicio de red a la unidad c: \ y propagar los permisos hacia abajo.

Me dispararás Lo sé, diciéndome lo malo que es esto, pero funciona.

+12

-1 - este es un mal consejo, debe estar completamente enterrado –

+0

De acuerdo, esa es una práctica muy insegura. – Trinition

+0

Esta solución es adecuada solo para pruebas, y solo de manera temporal. – ashes999

9

La cuenta de servicio de red que asp.net ejecuta de manera predeterminada no tiene acceso a los certificados personales de la máquina local.Permitir el acceso por el siguiente texto:

Repost de Sohnee @ forums.asp.net

Paso 1 - si no lo tiene ya instalado - obtener WinHttpCertCfg

Paso 2 - si ya tiene instalado el certificado en la máquina y sólo tiene que permitir el acceso a los servicios de red :

WinHttpCertCfg.exe -g c LOCAL_MACHINE \ MIS -s "IssuedToName" -a "NetworkService"

+1

Me siento orgulloso en este momento :) – Fenton

+0

Sohnee, su respuesta me ahorró una GRAN cantidad de trabajo. ¡¡¡Gracias!!! – TomZ

+0

WinHttpCertCfg no funciona en Windows 7. –

Cuestiones relacionadas