x509certificate - unico - No se puede encontrar un certificado único que coincida con los criterios
generacion de certificado unico vehicular (6)
Me estoy ejecutando en el siguiente error al intentar analizar mi token:
Property name: ''certificateReference''
Error: ''ID1025: Cannot find a unique certificate that matches the criteria.
StoreName: ''My''
StoreLocation: ''LocalMachine''
X509FindType: ''FindByThumbprint''
FindValue: ''41a8a59e537d4a00a8c4fa8dc2522388dbd13d27''
La sección en mi web.config es:
<serviceCertificate>`
<certificateReference x509FindType="FindByThumbprint" findValue="41A8A59E537D4A00A8C4FA8DC2522388DBD13D27" storeLocation="LocalMachine" storeName="My" />
</serviceCertificate>
He confirmado que el certificado existe en IIS, MMC e Internet Explorer y he intentado cambiar el tipo de búsqueda a sujeto sin ningún resultado. También he intentado que la huella digital sea mayúscula, minúscula, con espacios y sin espacios. También he confirmado que existe el certificado LocalMachine / My con los siguientes resultados:
Matching certificate:
CN=kelly-pc
Las cuentas y grupos adicionales con acceso a la clave privada incluyen:
NT AUTHORITY/SYSTEM
BUILTIN/Administrators
KELLY-PC/Kelly
BUILTIN/IIS_IUSRS
Así que este error estaba apareciendo en mi pantalla esta mañana. Estoy usando una máquina de desarrollo, así que estaba usando un certificado autofirmado (IIS). Después de instalar Visual Studio 2015 RC, IIS también se actualizó. Resulta que rompió la cadena de confianza, porque el certificado raíz fue eliminado o no válido (IIS Express.
Probablemente sea algo obvio, pero asegúrese de que el certificado seleccionado aún sea válido, incluido cada salto en la cadena.
En primer lugar, el consejo "emitido de Autenticación de Token" de Oleg no funcionó para mí ya que mi aplicación es un MVC de asp.net. Supongo que este elemento no es compatible con la aplicación MVC de asp.net, pero podría ser compatible con la configuración del servicio WCF.
Después de muchas horas de batallar con este error en localhost y otros errores, como ID1024, tuve que deshacer algunas cosas que había hecho siguiendo los consejos de dar a Todos los archivos leídos a todos los archivos dentro de% ALLUSERSPROFILE% / Microsoft / Crypto / RSA / MachineKeys según this blog (concedí leer en toda la carpeta de MachineKeys que no fue una buena idea!). Al hacer esto, todas las concesiones a las claves privadas dejaron de funcionar a través de la consola MMC.
Mi solución fue crear un nuevo certificado autofirmado según las instrucciones de here
Luego realicé una nueva importación del certificado recién creado a la tienda correcta y le di al usuario que ejecuta las aplicaciones web los derechos de lectura de la clave privada. Mi problema fue con el certificado que estaba usando antes, el cual fue autofirmado, debe haber sido algo incorrecto con él.
Esta sección fue definitivamente requerida en el lado del cliente:
<serviceCertificate>
<certificateReference x509FindType="FindByThumbprint" findValue="41A8A59E537D4A00A8C4FA8DC2522388DBD13D27" storeLocation="LocalMachine" storeName="My" />
</serviceCertificate>
Cuando se trata de certificados, este es también un muy buen consejo para tener en cuenta:
SI USTED IMPRIME EL CERTIFICADO EN LA TIENDA PERSONAL PARA DESARROLLO, LUEGO IMPORTA ESTE EN LA TIENDA DE LA MÁQUINA PARA LA IMPLEMENTACIÓN, LA CLAVE PRIVADA PERMANECERÁ EN LA UBICACIÓN DE LA TIENDA PERSONAL PARA QUE NINGUNA CUENTA DE SERVICIO PUEDE UTILIZARLO, AUNQUE Pese a que se haya otorgado la autorización.
Y finalmente, la herramienta FindPrivateKey.exe fue muy útil para localizar el archivo de clave privada real y para ayudar a resolver el problema, se puede descargar desde here , con buenas instrucciones here .
Noté que al eliminar certificados a través de la consola MMC tuve que eliminar el archivo de clave privada manualmente
C: / ProgramData / Microsoft / Crypto / RSA / MachineKeys
Si se borra de la tienda localMachine y de
C: / Users [Nombre de usuario] / AppData / Roaming / Microsoft / Crypto / RSA / S-1-5-21-2106337540-114255811-1274951907-65121
si se borra de la tienda CurrentUser
En un servidor en particular tuve que agregarlo al almacén Trusted Root Certification Authorities, además de Personal para que el código lo reconociera.
En mi caja local y otros servidores funcionó bien solo en el almacén personal.
Era un personaje invisible delante de la huella digital para mí también. La instrucción estándar de Microsoft para obtener la huella digital es abrir las propiedades del certificado, copiar la cadena de bytes codificados en hexadecimal y eliminar los espacios intermedios. Supongo que este procedimiento de copia agrega algunos caracteres invisibles al principio de la cadena. Estos caracteres también deben eliminarse o las huellas digitales no coinciden. Sabía que algo debía estar mal con la huella digital cuando descubrí que podía cargar el certificado por su nombre.
Probablemente use un certificado autoemitido y debería agregar también la línea
<issuedTokenAuthentication allowUntrustedRsaIssuers="true" />
dentro de <serviceCertificate>
que debe usarse junto con <certificateReference>
.
Tuve exactamente el mismo problema. Al copiar mi sección web.config en Notepad ++ (no bloc de notas) vi un carácter invisible:
<serviceCertificate>
<certificateReference x509FindType="FindByThumbprint" findValue="?e36df2f3e351a25adf8ffb6ad3619f10238f0317" />
</serviceCertificate>
Elimina este carácter y debería funcionar.
Sin el Bloc de notas ++ puede presionar la tecla de retroceso delante del valor de la huella digital (tratando de eliminar el "carácter").