Configuração
A Engine OpenSSL Dinamo está em uma camada acima da API nativa do Dinamo. Consulte Software cliente sobre opções de configuração da biblioteca cliente.
Variáveis de Ambiente
A configuração da Engine OpenSSL é feita através de variáveis de ambiente (prefixadas por HSM_OSSL_ENGINE_
) que devem ser configuradas no sistema operacional ou no processo que faz o carregamento da biblioteca Engine1.
Atenção
Sempre que forem alteradas as variáveis de ambiente é necessário que se reinicie a aplicação.
User
HSM_OSSL_ENGINE_USER
Nome do usuário do HSM que será utilizado pela Engine OpenSSL.
Variável deve ser definida com o nome do usuário para que a Engine OpenSSL funcione.
IP
HSM_OSSL_ENGINE_IP
Endereço do HSM que será utilizado pela Engine OpenSSL.
Variável deve ser definida com o endereço IP do HSM para que a Engine OpenSSL funcione.
Encrypted
HSM_OSSL_ENGINE_ENCRYPTED
Define se a conexão feita com o HSM deve ser encriptada (TLS) ou aberta (clear text).
Variável não definida conexão encriptada. Variável definida utilizar 0 para conexão aberta e 1 para conexão encriptada.
É recomendado que se utilize a conexão encriptada.
Comando de Controle
A Engine OpenSSL do Dinamo aceita as configurações por comando de controle descritas na tabela a seguir. Estas configurações têm precedência sobre as configurações feitas via variáveis de ambiente. As configurações feitas por comando de controle podem ser feitas antes ou imediatamente depois da inicialização da Engine (ENGINE_init()
).
USR
Define o usuário do HSM que será utilizado para a conexão com o HSM.
Valor deve ser string contendo o nome do usuário.
USR_PWD
Define a senha do usuário utilizado para a conexão com o HSM.
Valor deve ser string contendo a senha do usuário.
IP
Define o IP que será utilizado para a conexão com o HSM.
Valor deve ser string contendo o endereço IP.
NO_TLS
Desabilita o uso de TLS na conexão com o HSM. Se este controle não for definido o HSM operará por padrão com o TLS habilitado.
Valor deve ser número, sendo 1
para desabilitar a conexão TLS e 0
para habilitar a conexão TLS.
Algumas funções relacionadas à utilização de comandos:
int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void));
int ENGINE_cmd_is_executable(ENGINE *e, int cmd);
int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name,long i, void *p, void (*f)(void), int cmd_optional);
int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, int cmd_optional);
Ver documentação específica do OpenSSL2 para utilização e outras/atuais funções.
Abaixo um exemplo prático utilizando o programa linha de comando openssl com a Engine OpenSSL do Dinamo passando as configurações via comandos de controle da OpenSSL (ver tabela acima).
O comando req
espera uma chave RSA já criada dentro do HSM. Alguns parâmetros (path da biblioteca, id de usuário, endereço IP e id da chave) deverão estar de acordo com o ambiente.
Nota
OpenSSL 1.0.2p 14 Aug 2018
-
Engine command
openssl engine -t dynamic -pre SO_PATH:C:\dinamo.dll -pre ID:dinamo -pre LIST_ADD:1 -pre LOAD -pren USR:master -pre IP:127.0.0.1 -pre USR_PWD:12345678
(dynamic) Dynamic engine loading support [Success]: SO_PATH:D:\dinamo.dll [Success]: ID:dinamo [Success]: LIST_ADD:1 [Success]: LOAD [Success]: USR:usuario [Success]: IP:10.10.10.10 [Success]: USR_PWD:12345678 Loaded: (dinamo) Dinamo engine support [ available ]
-
Req command
openssl req -engine dinamo -new -key rsa -keyform engine -out req_rsa.pem -text -x509 -subj "/CN=John RSA Doe"
engine "dinamo" set.
-
O prefixo das variáveis de ambiente foi atualizado a partir da versão 3.2.26 do cliente do HSM. A partir desta versão o prefixo é
HSM_
, nas versões anteriores o prefixo éDFENCE_
.Exemplo:
Versão antiga:
DFENCE_OSSL_ENGINE_ENCRYPTED
.Versão nova:
HSM_OSSL_ENGINE_ENCRYPTED
. ↩