Emitir um arquivo PKCS #12
Quando o seu sistema não tem uma chave própria para enviar, o Amplia pode gerar o par de chaves, emitir o certificado e devolver os dois em um arquivo PKCS #12 (.pfx) protegido por senha. Essa API existe desde o Amplia 4.1.0.
Fluxo
- Crie o pedido.
- Chame
POST /api/certificates/pkcs12com o id do pedido, a senha do arquivo e o tamanho da chave. - Guarde o arquivo a partir do
pfxContentda resposta (em Base64); omodelda resposta descreve o certificado emitido.
O único sample é em Node.js. Ele pede uma chave de 2048 bits, com a senha que o usuário digitou:
let order = await client.createOrder(request);
let cert = await client.issuePkcs12Certificate(order.getId(), req.body.senha, 2048);
let certId = cert.getModel().id;
StorageMock.storeSync(cert.getPfxContent(), certId, '.pfx');
| Campo | Significado |
|---|---|
orderId | Id do pedido a atender. |
password | Senha que protege o arquivo PKCS #12. |
keySize | Tamanho do par de chaves, em bits; o sample usa 2048. |
- Só o cliente Node.js tem essa chamada. O
getPfxContent()dele devolve opfxContentcomo a API o envia, em Base64, egetModel()devolve o JSON do certificado sem alterações. - TODO(docs): que tamanhos de chave são aceitos e se o Amplia guarda uma cópia da chave privada depois de devolver o arquivo.
- A chave privada chega ao seu servidor dentro do arquivo: proteja o arquivo e a senha como protegeria a própria chave.
Chave e certificado em outros formatos
Desde o Amplia 4.7.0, POST /api/certificates/software recebe a mesma requisição e devolve a chave e o certificado em vários formatos:
pkcs12Der, certificateDer e certificatePem, publicKeyDer e publicKeyPem, privateKeyPkcs8Der e privateKeyPkcs8Pem,
privateKeyPkcs1Der e privateKeyPkcs1Pem, além do model do certificado.
O issueSoftwareCertificate(orderId, password, keySize) do cliente Node.js chama esse endpoint, com uma chave de 2048 bits por padrão.
Veja também
- Criar pedidos de certificado
- Emitir a partir de um CSR, para manter a chave onde ela foi gerada
- Erros