Configuração - PKI Express
É possível alterar as seguintes configurações do PKI Express:
- Logs
- Pasta temporária
- Proxy
- Integração com o LAPP
- Integração com o Azure
- Serviços de Certificado Digital em Nuvem
A configuração do PKI Express é gerenciada através do comando pkie config. Veja as seções abaixo para saber mais sobre esse comando.
As bibliotecas cliente têm configurações próprias, como a pasta em que o PKI Express está instalado: veja
Configurações da biblioteca cliente.
Comando pkie config
Para visualizar a sintaxe do comando:
pkie help config
Para visualizar as configurações atuais:
pkie config
Para alterar uma configuração:
pkie config --set name=value
Exemplo:
pkie config --set logLevel=3
Configuração efetiva
O PKI Express pode eventualmente ignorar uma configuração inválida. Por exemplo, se a configuração
tempDir for setada para um caminho inválido ou uma pasta à qual o PKI Express não possui permissões
de escrita, a pasta temporária definida pelo ambiente será utilizada ao invés da pasta configurada.
Esse é o chamado valor efetivo da configuração, ou seja, o valor que o PKI Express está de fato
utilizando, que pode ser diferente do valor configurado manualmente.
Para diagnosticar problemas relacionados à configuração, pode ser útil verificar a configuração efetiva do PKI Express:
pkie config --effective
Configurações da biblioteca cliente
As configurações acima são do PKI Express e valem para todas as aplicações da máquina. As bibliotecas cliente têm
configurações próprias, na classe PkiExpressConfig, que você passa para o construtor de cada classe de operação
(PadesSignatureStarter, SignatureFinisher, PadesSigner etc.). Sem ela, a classe usa os padrões abaixo.
| Configuração | Padrão |
|---|---|
| Pasta do PKI Express | Windows: a pasta Lacuna Software\PKI Express que contém o pkie.exe, em Program Files, Program Files (x86) ou no %LOCALAPPDATA% do usuário. Linux: o comando pkie no PATH, onde as páginas de instalação o colocam |
| Pasta temporária | A pasta temporária do sistema (Ruby: uma pasta nova que a biblioteca cria dentro dela). Guarda os arquivos temporários que a biblioteca grava em cada operação |
| Pasta dos transfer data files | A pasta temporária. Guarda os transfer data files, que levam uma assinatura da etapa de início para a etapa de finalização; por isso, precisa ser a mesma nas duas etapas |
As três são argumentos do construtor, nessa ordem, e cada uma pode ficar vazia (null, None ou nil):
| Linguagem | Exemplo |
|---|---|
| Java | new PadesSignatureStarter(new PkiExpressConfig("D:\\pkie", null, "D:\\pkie-transfer")) (argumentos String ou Path) |
| Node.js | new PadesSignatureStarter(new PkiExpressConfig('D:\\pkie', null, 'D:\\pkie-transfer')) |
| PHP | new PadesSignatureStarter(new PkiExpressConfig('D:\\pkie', null, 'D:\\pkie-transfer')) |
| Python | PadesSignatureStarter(PkiExpressConfig('D:\\pkie', None, 'D:\\pkie-transfer')) |
| Ruby | PkiExpress::PadesSignatureStarter.new(PkiExpress::PkiExpressConfig.new('D:\\pkie', nil, 'D:\\pkie-transfer')) |
Se o PKI Express não estiver na pasta que você definiu ou, no Windows, em nenhuma das pastas padrão, a biblioteca lança
InstallationNotFoundException (Java, PHP) ou InstallationNotFoundError (Node.js, Python, Ruby). Se a pasta temporária
ou a pasta dos transfer data files que você passar não existir, as bibliotecas de Java, Node.js, PHP e Python usam o
padrão sem erro, enquanto a de Ruby lança ArgumentError.
Quando você define a pasta do PKI Express no Linux, as bibliotecas de Node.js, PHP, Python e Ruby executam
dotnet <pasta>/pkie.dll. Desde a versão 1.31.0, o pacote do PKI Express para Linux é um único executável pkie, sem
pkie.dll (histórico de versões); com essas bibliotecas, deixe a pasta vazia e coloque o
pkie no PATH. A biblioteca de Java executa <pasta>/pkie quando a pasta não tem pkie.dll.
Para apagar os arquivos temporários de uma operação, chame dispose() (Java) ou disposeSync() (Node.js) depois que a
operação terminar, como faz o exemplo de assinatura em Java; as bibliotecas de PHP, Python e
Ruby os apagam quando o objeto é destruído ou coletado pelo garbage collector. Os transfer data files não são arquivos
temporários: a etapa de finalização precisa deles.