returns remarks example c# wcf wcf-security x509certificate

c# - remarks - Falta la opción ''GESTIONAR CLAVES PRIVADAS''



remarks c# documentation (7)

La opción Administrar claves privadas solo está disponible para certificados con una clave privada exportable

En mi caso, experimenté este problema a pesar de haber configurado el complemento Certificados para acceder a la cuenta de la COMPUTADORA. Además, la sugerencia de obtener un certificado .PFX en esta respuesta no es una opción para mí.

Resolví el problema especificando que la clave privada sería exportable al crear la solicitud de certificado (que estoy haciendo a través del complemento Certificados MMC):

A pesar de que el certificado que obtuve de la CA pública era un archivo .CER , la opción de menú Administrar claves privadas estaba disponible para él. No sé mucho acerca de los certificados, pero concluyo que la opción del menú solo aparece cuando se puede exportar la clave privada. A la luz de esta respuesta , quizás los certificados en formato .PFX siempre permiten que esto se haga. No obstante, es bueno saber que es posible para otros formatos de certificados.

Estoy desarrollando el servicio WCF con Transport Security alojado en IIS 7.5 bajo Windows 2008R2. Tengo un certificado, generado en IIS 7.5 que se almacena en la carpeta Local.

Cuando uso BasicHttpBinding o WSHttpBinding con Seguridad de transporte, todo funciona bien. Pero cuando lo cambio a NetTcp obtengo una excepción:

CryptographicException ''Keyset does not exist''.

Después de un poco de googlear, descubrí que el problema puede deberse a que mi cuenta NETSERVICE IIS no tiene como premisa la clave privada de mi certificado.

La solución podría ser establecer los derechos de acceso en MMC haciendo clic derecho en mi certificado y seleccionando la opción "GESTIONAR CLAVES PRIVADAS". Pero no hay tal opción en el menú de selección! El certificado se creó bajo la cuenta del administrador y, donde lo abro, dice que tiene una clave privada. ¿Qué estoy haciendo mal?


  1. Abra el símbolo del sistema (Ejecutar como administrador)
  2. Ingrese y ejecute el comando,
    certutil -repairstore mi "huella digital" (reemplace la huella digital con los 32 caracteres)
  3. Si tiene éxito, recibirá un mensaje,
    certUtil : -repairstore comando completado con éxito.

En Windows 10 1809, parece que la opción Administrar claves privadas solo está disponible para certificados en el almacén personal. La solución es arrastrar y soltar el certificado allí, agregar permisos según sea necesario y volver a arrastrarlo a donde lo necesite.


La opción Administrar claves privadas faltaba cuando intenté agregar los certificados por primera vez. Finalmente lo corrigió siguiendo dos pasos.

  1. Corrió MMC como administrador. Archivo-> Agregar o quitar complementos-> Seleccionar certificados -> Hacer clic en el botón Agregar. Esto abrirá un cuadro de diálogo. Este complemento siempre administrará el certificado para: elija cuenta de equipo. Seleccione la computadora que desea que administre este complemento: elija Computadora local. Haga clic en Finalizar. Haga clic en Aceptar.

  2. Cuando importe los certificados (Todas las tareas -> Importar) en la Carpeta personal, asegúrese de que está importando el archivo .pfx y NO el archivo .cer.


Puede haber otro problema, así que lo mencionaré. Excepto el argumento -pe al crear un certificado usando makecert.exe, asegúrese de que está importando el archivo .pfx , no el .cer . Si no hay un archivo .pfx , use una herramienta adicional como pvk2pfx.exe para crear.


Tuve este mismo problema (falta la opción Administrar claves privadas). Para que aparezca, tuve que agregar el complemento Certificados utilizando la opción "Cuenta de equipo" en lugar de la predeterminada "Mi cuenta de usuario"


Vaya al servidor -> haga clic en Inicio -> Ejecutar -> escriba mmc -> ingrese -> seleccione el complemento Certificados con la opción de computadora local -> Vaya a la Raíz de la consola-> Certificados-> Personal-> Certificados-> Seleccione un certificado-> Haga clic con el botón derecho-> Ir a Todas las tareas-> Administrar claves privadas-> Agregar permisos