286 votos

No se puede importar el archivo de claves ' blah.pfx '-error ' keyfile puede ser protegido por contraseña '

Acabamos de actualizar nuestro Visual Studio 2008 proyectos para Visual Studio 2010. Todas nuestras asambleas eran fuertes firmado con un Verisign certificado de firma de código. A partir de la actualización continuamente nos sale el siguiente error:

No se puede importar la clave siguiente archivo: companyname.pfx. El archivo de la clave puede ser protegido por contraseña. Para corregir esto, intente importar el certificado de nuevo o instalar manualmente el certificado Fuerte el Nombre de CSP con la siguiente clave nombre del contenedor: VS_KEY_3E185446540E7F7A

Esto sucede en algunos equipos de desarrollador y no otros. Algunos de los métodos utilizados para corregir este que trabajó parte del tiempo incluyen:

  • Re-instalación del archivo de clave desde el Explorador de Windows (clic derecho sobre el archivo PFX y haga clic en Instalar)
  • Instalación de Visual Studio 2010 en un fresco de la máquina por primera vez, le pide la contraseña la primera vez que abra el proyecto, y entonces funciona. En las máquinas actualizado desde Visual Studio 2008, usted no recibe esta opción.

He intentado usar el SN.EXE utilidad (Fuerte en el Nombre de la Herramienta) para el registro de la clave con el Nombre Fuerte de CSP como el mensaje de error indica, pero cada vez que se ejecute la herramienta con las opciones de uso de la versión que viene con Visual Studio 2010, SN.EXE sólo las listas de sus argumentos de línea de comandos en lugar de hacer algo. Esto sucede independientemente de lo que los argumentos de la oferta.

¿Por qué sucede esto, y lo que son claros los pasos para solucionarlo? Estoy a punto de renunciar a ClickOnce instala y firma de código de Microsoft.

328voto

Brandon Manchester Puntos 2584

Yo estaba corriendo en este problema. Fui capaz de resolver el problema mediante la ejecución sn -i <KeyFile> <ContainerName> (instala par de claves en el nombre del contenedor).

sn generalmente es instalado como parte de un SDK de Windows. Por ejemplo, C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe. Más probable es que esta ubicación no se encuentra en la ruta de búsqueda para su entorno estándar. Sin embargo, los "Desarrolladores " Símbolo del sistema" que instala Visual Studio agrega información adicional que generalmente incluye la ubicación correcta.

Basado en tu post que se vería

sn -i companyname.pfx VS_KEY_3E185446540E7F7A

Esto se debe ejecutar desde la ubicación de su archivo PFX, si usted tiene la solución cargada en VS 2010, usted puede simplemente el clic derecho en el archivo pfx desde el explorador de soluciones y seleccione Abra el Símbolo del sistema que se inicia el .net 2010 herramienta símbolo de cmd en el directorio correcto.

Antes de ejecutar este comando sn me hizo volver a instalar el pfx haciendo clic derecho sobre ella y seleccionando instalar, sin embargo, que no funcionó. Algo de lo que nota como podría ser la combinación de ambos, que proporciona la solución.

Espero que esto ayude a resolver su problema.

91voto

MagicBox Puntos 721

He descubierto una solución que le ayuda a ser capaces de construir con éxito en múltiples entorno de desarrollo:

En lugar de cambiar la contraseña (la que hace que el .pfx a ser cambiado), vuelva a seleccionar el archivo .pfx desde el combobox. Esto invoca el cuadro de diálogo de contraseña. Después de introducir la contraseña, el proyecto se basará en ACEPTAR. Cada desarrollador puede hacer esto en su local de la máquina sin tener que modificar el archivo .pfx.

Todavía estoy teniendo problemas al obtener asambleas para ser firmado en nuestro servidor de generación de la máquina. Me da el mismo error hay, sin embargo el uso de la sn.exe -yo método no soluciona el problema de la buildserver.

30voto

Jarek Kardas Puntos 6956

VSCommands 2010 (plugin para Visual Studio) puedes arreglar esto para usted automáticamente - haga clic en error y haga clic en aplicar arreglar desde el menú. Puedes conseguirlo desde Visual Studio gallery.

28voto

Beached Puntos 559

Yo tenía el mismo problema y eliminar la tienda y la lectura no funciona. Yo tenía que hacer lo siguiente.

  • Obtener una copia de OpenSSL. Está disponible para Windows. O el uso de un cuadro de Linux, ya que todos casi todos la tienen.

  • Ejecute lo siguiente para exportar a un archivo de clave:

    openssl pkcs12 -in certfile.pfx -out backupcertfile.key
    
    openssl pkcs12 -export -out certfiletosignwith.pfx -keysig -in backupcertfile.key
    

Luego en las propiedades del proyecto puede utilizar el archivo PFX.

19voto

Mike F Puntos 141

He hablado demasiado pronto! Reconstrucción trajo los errores en el juego...

He encontrado que esto funciona - haga clic derecho en el Explorador de soluciones y excluirla del proyecto. Haga clic en Mostrar todos los archivos, haga clic derecho y ahora incluir en el proyecto otra vez. Ahora deshacer los cambios pendientes...

Por alguna razón esto lo solucione para mí y estaba relativamente sin dolor!

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X