Pergunta

Eu estou tendo alguns problemas para a importação e acessar a chave privada com o usuário ASPNET. Eu sei que quando uma importação uma chave privada (ficheiro.pfx) manualmente, no Windows, você tem a opção de marcar a chave como exportável. Agora, tanto quanto eu posso dizer, isso é necessária a fim de recuperar a chave privada mais tarde.

Meu problema vem em que eu estou importando a chave privada no código, como o usuário ASPNET, e não parece ser uma maneira de marcá-lo como exportável, da mesma forma que o assistente de importação de certificados do Windows faz. Para esclarecer, a importação funciona muito bem, mas quando eu acessar os detalhes do certificado, agora importado, não há dados chave privada.

Este é o código que estou usando para importar o certificado, uma vez que já abriu o arquivo .pfx, com a senha correta.

public void ImportCertificate(X509Certificate2 cert, StoreName name, StoreLocation loc)
{
    X509Store certStore = new X509Store(name, loc);
    StorePermission permission = new StorePermission(PermissionState.Unrestricted);
    permission.Flags = StorePermissionFlags.AddToStore;
    permission.Assert();
    certStore.Open(OpenFlags.ReadWrite);
    certStore.Add(cert);
    certStore.Close();
}

Am I zoneando as permissões ou a maneira que eu importar esta chave privada? Ou eu estou lidando com isso da maneira errada inteiramente?

Foi útil?

Solução

Eu acredito que você precisa para definir o sinalizador X509KeyStorageFlags.Exportable quando você importar o certificado. Você não mostra esse código, mas há uma sobrecarga do método de importação com esta assinatura:

public override void Import(string fileName, string password, 
                            X509KeyStorageFlags keyStorageFlags);

ou este:

public override void Import(byte[] rawData, string password, 
                            X509KeyStorageFlags keyStorageFlags);

O que vai deixar você configurá-lo antes de importar. Caso contrário, tudo parece bom!

Richard

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top