Árvore de páginas
Ir para o final dos metadados
Ir para o início dos metadados

A seção permite habilitar o TOTVS | Application Server para criptografar e autenticar as informações que são transmitidas pela internet, assim como outras operações de assinatura e certificação.

Ao configurar esta seção, as informações enviadas ou recebidas através de conexões socket são criptografadas/descriptografadas pelos pares conectados conforme as chaves e certificados especiais, que garantem que somente as partes autorizadas tenham acesso a comunicação.

Importante

  • O TOTVS | Application Server utiliza certificados de seguranças no formato APACHE (.pem)
  • Esta configuração é obrigatória para que o TOTVS | Application Server esteja habilitado a aceitar conexões remotas (seguras) e utilizar o protocolo de internet HTTPS - HyperText Transfer Protocol Secure.

Qualquer pacote TCP trafegado entre o servidor e o cliente estará criptografado, ou seja, não será possível o entendimento do pacote fora das partes. Além da codificação de dados, o SSL (Secure Sockets Layer) também efetua a autenticação da fonte de dados através da utilização do certificado e chave privada.

O certificado de segurança, emitido pelo provedor externo conhecido como Autoridade de Certificação (CA), tem por objetivo confirmar ao cliente (o par que inicia o processo de comunicação) que o Website é realmente administrado. Com isso, os possíveis ataques de hackers são evitados.

As chaves de configuração aqui apresentadas são utilizadas tanto na atuação do TOTVS | Application Server como servidor de informação quanto a funções que atuam com cliente de acesso a informações, por exemplo, HTTPSGet e HTTPSPost.

Dica

Há um estudo publicado no TDN que demonstra irregularidades encontradas na configuração SSL/TLS em versões anteriores a 13.1.3.26 e 13.2.3.26 e orienta o uso de boas práticas no procedimento de configuração: Conexões SSL/TLS.

A seguir, veja a documentação das chaves de configuração:


ChaveDescrição
SSL2Habilita a utilização da comunicação SSL2 na comunicação.
SSL3Habilita a utilização da comunicação SSL3 na comunicação.
TLS1(deprecated) Indica a utilização da comunicação com base no protocolo TLS1.
TLS1_0Habilita a utilização do protocolo TLS1.0 na comunicação.
TLS1_1Habilita a utilização do protocolo TLS1.1 na comunicação.
TLS1_2Habilita a utilização do protocolo TLS1.2 na comunicação.
DisableCipherConjunto de cifras que devem ser desabilitadas nas conexões SSL. A string deve especificar as cifras separadas pelo caractere ":".
VerboseSinaliza o registro das mensagens de Debug em todas as operações ligadas ao uso de HSM (Hardware Security Module) e SSL (Secure Sockets Layer).
BugsSinaliza a utilização de "bug workaround" do OpenSSL.
DebugSinaliza o registro dos pacotes de dados do handshaking SSL/TLS trafegados entre client/server. Dados associados a cifras e conteúdos de segurança não são expostos.
StateSinaliza o registro das mensagens de alteração de estados internos do handshaking SSL.
CacheSize

Define o tamanho do cache interno da seção de contexto SSL.

CertificateServerPath do arquivo do certificado digital do servidor para conexões SSL. O arquivo deve estar no formato PEM (modelo Apache).
KeyServerPath do arquivo com a chave privada correspondente ao certificado digital do servidor. O arquivo deve estar no formato PEM (modelo Apache).
PassPhraseSenha utilizada para a abertura da chave privada indicada por KeyServer. Caso a chave privada informada não necessite de senha uma string vazia deve ser informada.
SecondCertificateServerPath de um segundo arquivo de certificado digital do servidor para conexões SSL. O arquivo deve estar no formato PEM (modelo Apache).
SecondKeyServerPath do arquivo com a chave privada correspondente ao segundo certificado digital do servidor. O arquivo deve estar no formato PEM (modelo Apache).
CertificateClientPath do arquivo de um certificado digital utilizado quando a aplicação assume o papel client, ou seja, inicia uma conexão ou consome um serviço de um site https:// ou outro servidor.
KeyClientPath do arquivo com a chave privada que será utilizada pela aplicação quando assume o papel client.
SecondCertificateClientPath do arquivo de um segundo certificado digital utilizado quando a aplicação assume o papel client, ou seja, inicia uma conexão ou consome um serviço de um site https:// ou outro servidor.
SecondKeyClientPath do arquivo com a chave privada que correspondente ao segundo certificado digital utilizado pela aplicação quando assume o papel cliente.
HSMSinaliza a comunicação e a operação de criptografia com o uso de HSM (Hardware Security Module).
ModuleSinaliza o módulo Criptoki que será utilizado para acessar o HSM (Hardware Security Module).
TryProtocols(deprecated) Habilita a reconexão SSL utilizando outra versão de protocolo em caso de falha da conexão.

Exemplo

[SSLConfigure]
SSL2      = 0
SSL3      = 0
TLS1_0    = 0
TLS1_1    = 1
TLS1_2    = 1
Verbose   = 0
Bugs      = 0
State     = 0
CacheSize = 32

CertificateServer   = C:\cert\server-cert.pem
KeyServer           = C:\cert\server-key.pem
PassPhrase          = password
CertificateClient   = C:\cert\client-cert.pem
KeyClient           = C:\cert\client-key.pem

Module = C:\Program Files\hsm\cryptoki.dll
HSM    = 0

Notas

Versões Contínuas de SSL/TLS

A habilitação de versões do protocolo SSL/TLS deve sempre compreender um range de grau de segurança contínuo, ou seja, não deve haver saltos na habilitação de versões. Por exemplo, se necessito realizar conexão a um servidor que aceite somente a versão SSL3 do protocolo e também conexão a outro servidor que necessite no mínimo a versão TLS1.1 do protocolo, devo configurar todas versões disponíveis entre a SSL3 e TLS1.2, como abaixo:

[SSLConfigure]
SSL2 = 0
SSL3 = 1
TLS1_0 = 1  ← tenho que habilitá-lo
TLS1_1 = 1
TLS1_2 = 1

  • A chave TLS1 está mantida em modo de compatibilidade. Isso significa que a atualização da aplicação irá funcionar adequadamente, porém, esta chave deve ser substituída pelas novas versões TLS1_0TLS1_1 e TLS1_2. Caso quaisquer das novas chaves do protocolo TLS sejam encontradas no arquivo de configuração, a aplicação não reconhecerá as informações contidas na TLS1.

  • Esta implementação não envolve a classe WSDLManager, que contém implementação própria do protocolo, restringe-se ao uso do AppServer como servidor de conexão (WEBEX, HTTTPS) e as funções de acesso HTTPSGet, HTTPSPost.

  • Sem rótulos