Definição
PKCS#12 é um padrão de formato de arquivo que reúne, em um único pacote protegido por senha, um certificado digital, a chave privada correspondente e, opcionalmente, a cadeia de certificação. No Brasil, é o formato usado pelo certificado digital A1, normalmente salvo com extensão .pfx ou .p12, para assinar documentos fiscais eletrônicos como NF-e, NFC-e e CT-e.
Também conhecido como: PKCS#12, Public-Key Cryptography Standards #12, PKCS 12, PKCS12, Arquivo PFX, Arquivo P12, Formato .pfx, Formato .p12
O que é PKCS#12, em palavras simples?
Pense no PKCS#12 como um cofre digital em forma de arquivo. Dentro dele ficam guardadas as peças necessárias para provar a identidade de uma empresa ou pessoa no meio eletrônico: o certificado digital, que é a parte pública, e a chave privada, que é a parte secreta. Para abrir esse cofre, é preciso saber a senha definida quando o arquivo foi criado.
O nome vem de uma família de padrões de criptografia chamada PKCS (Public-Key Cryptography Standards). O número 12 identifica especificamente o padrão que define como empacotar certificados e chaves em um só arquivo, de forma portátil e protegida.
Qual a diferença entre PKCS#12, PFX e P12?
Na prática, os três nomes se referem à mesma coisa. PKCS#12 é o nome do padrão técnico. PFX e P12 são as extensões de arquivo mais comuns para arquivos nesse formato. Um arquivo empresa.pfx e um arquivo empresa.p12 seguem o mesmo padrão e geralmente podem ser usados da mesma maneira.
O termo PFX tem origem em um formato anterior que serviu de base para o PKCS#12, por isso ainda aparece com frequência em sistemas Windows e em instruções de emissores fiscais.
Por que o PKCS#12 é importante na emissão de notas fiscais?
Todo documento fiscal eletrônico precisa ser assinado digitalmente antes de ser enviado à SEFAZ ou à prefeitura. Essa assinatura garante que o XML foi gerado pelo emitente e não foi alterado no caminho. Para assinar, o sistema precisa da chave privada da empresa, e é justamente o arquivo PKCS#12 que a transporta.
O certificado digital A1 da ICP-Brasil é entregue nesse formato. Como é um arquivo, ele pode ser instalado em servidores e usado de forma automática, sem depender de cartão, token ou leitor físico. Isso o torna o tipo mais usado por ERPs, plataformas de venda e APIs fiscais que emitem notas em grande volume.
Como o arquivo PKCS#12 é usado em uma API fiscal?
Em uma integração por API, a empresa normalmente cadastra o certificado uma única vez, enviando o arquivo .pfx junto com a senha. Muitas APIs aceitam o arquivo convertido em texto Base64 dentro de uma requisição JSON, o que facilita o envio por HTTPS.
Depois do cadastro, a plataforma usa o certificado para assinar cada documento emitido em nome daquele CNPJ. Também é comum que ela leia do próprio arquivo a data de validade e avise quando o certificado estiver perto de vencer, evitando que as emissões parem de repente.
Quais cuidados de segurança o PKCS#12 exige?
Quem tem o arquivo e a senha consegue assinar documentos em nome da empresa. Por isso, o arquivo nunca deve ser enviado por e-mail sem proteção, deixado em pastas compartilhadas ou gravado em código-fonte. A senha deve ser guardada separadamente do arquivo, de preferência em um cofre de segredos.
Também vale manter uma cópia de segurança em local protegido, já que perder o arquivo significa, em geral, precisar emitir um novo certificado. Em ambientes mais exigentes, a chave pode ser armazenada em um HSM, que impede que ela seja copiada.
Exemplos de PKCS#12
- Um ERP que atende várias lojas pede a cada cliente o upload do arquivo .pfx do certificado A1 e da senha para começar a emitir NF-e automaticamente.
- Um desenvolvedor converte o arquivo PKCS#12 em Base64 e o envia no corpo de uma requisição JSON para cadastrar o certificado de um novo CNPJ em uma API fiscal.
- Uma transportadora renova seu certificado A1, recebe um novo arquivo .p12 e o substitui no Console do emissor para continuar emitindo CT-e e MDF-e sem interrupção.
- A equipe de TI guarda o arquivo .pfx em um cofre de segredos e configura o servidor para lê-lo apenas no momento de assinar os XML.
Perguntas frequentes
Posso usar um certificado A3 no formato PKCS#12?
Não. No certificado A3 a chave privada fica gravada em cartão ou token e não pode ser exportada. O formato PKCS#12 é característico do certificado A1, cuja chave fica em um arquivo.
O que acontece se eu esquecer a senha do arquivo PFX?
Sem a senha não é possível abrir o arquivo nem usar a chave privada. Em geral, a solução é solicitar a emissão de um novo certificado à Autoridade Certificadora.
Um arquivo PKCS#12 pode ser convertido para outros formatos?
Sim. Ferramentas de criptografia permitem extrair o certificado e a chave para formatos como PEM ou importar o conteúdo em um repositório JKS, usado em sistemas Java. A senha é necessária para isso.
O arquivo PKCS#12 tem validade?
O arquivo em si não expira, mas o certificado dentro dele tem data de validade. O certificado A1 costuma valer cerca de um ano; depois disso, as assinaturas deixam de ser aceitas e é preciso renová-lo.
Atualizado em · Como produzimos este glossário
