# Como configurar sistema para chave de liberação automática

##### 1º Passo atualizem para versão 1778 do Soften Siem e 1082 do PAFECF ou posterior para que a forma de liberação seja automatizada através de um webservice nos protocolos TLS 1.2 , quando essa comunicação não ocorre o sistema não abre e aparece a imagem a baixo.

[![image-1651664404488.png](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/scaled-1680-/image-1651664404488.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/image-1651664404488.png)

[![image-1651664595828.png](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/scaled-1680-/image-1651664595828.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/image-1651664595828.png)

##### 1º Verifique no banco PAFECF tabela EMPRESA se os dados do CNPJ estão corretos. No banco SIEM seria tabela CD\_EMPRESA.  
  


##### Para sanar o problema siga os seguintes passos:  
2º Tente acessar o site : [https://api.sistemaempresarialweb.com.br/](https://api.sistemaempresarialweb.com.br/ "https://api.sistemaempresarialweb.com.br/")

[![image-1705411440527.png](https://docs.softensistemas.com.br/uploads/images/gallery/2024-01/scaled-1680-/image-1705411440527.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2024-01/image-1705411440527.png)

##### **Pagina precisa abrir como a imagem a cima**, caso apareça como não seguro instale as **cadeias como confiáveis** disponíveis no link :  
[https://cloud.softensistemas.com.br/index.php/s/GjNLSDLq74rtSd9](https://cloud.softensistemas.com.br/index.php/s/GjNLSDLq74rtSd9 "https://cloud.softensistemas.com.br/index.php/s/GjNLSDLq74rtSd9")

##### E refaça o teste.  
  


##### Caso erro persista verifique se o **protocolo TLS 1.2** esta ativo no Windows e atualize o sistema operacional até que esteja.  
  
Em casos raros será necessário configurar o anti-virus ou firewall para não bloquear o webservice.  
  
Em algum outros casos será necessário redefinir o **DNS** para isso realize:

##### Abra o prompt de comando pressione as teclas Windows e R simultâneamente e na janela que abrir, digite **cmd** e dê enter, ou vá em busca e digite cmd.

[![image-1651665104732.png](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/scaled-1680-/image-1651665104732.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/image-1651665104732.png)

##### digite o comando

##### **ipconfig /flushdns**

[![image-1651665119424.png](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/scaled-1680-/image-1651665119424.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/image-1651665119424.png)

Se mesmo assim não obtiver sucesso defina o DNS do Google, como nos passo a baixo

### Definindo DNS no Windows.

- Acesse o menu “Iniciar”;
- clique em “Configurações” » “Rede e Internet” » “Wi-Fi”;
- escolha “Alterar opções de adaptador”;
- clique com o botão direito em sua rede ativa » “Propriedades” (caso seja solicitada a senha de administrador, digite-a);
- busque a opção “TCP/IPv4” (Protocolo IP Versão 4);
- clique em “Propriedades”;
- marque “Usar os seguintes endereços de servidor de DNS” e informe o valor 8.8.8.8 para o servidor DNS preferencial e 8.8.4.4 para o servidor DNS alternativo;
- clique em “OK” para salvar as alterações.

[![image-1651666107597.png](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/scaled-1680-/image-1651666107597.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/image-1651666107597.png)

[![image-1651666200944.png](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/scaled-1680-/image-1651666200944.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2022-05/image-1651666200944.png)

#####   
  


##### CLOUD: Em caso de erro de comunicação TLS/SSL, comparar os registros de criptografia do servidor funcional com os do servidor afetado. Exportar a configuração correta do servidor que funciona, importar no servidor com falha e reiniciar para validação.  
  


# Comparação das cipher suites

Foi executado nos dois servidores, bom e ruim:

<div id="bkmrk-reg-query-%22hklm%5Csyst"><div><div><div><div><div><div><div><div><div></div></div></div><div><div><div><div><div>```
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002" /v Functions > C:\Temp\CIPHERS.txt
```

</div></div></div></div></div></div></div></div></div><div><div></div></div></div></div></div>## Resultado encontrado

O servidor com problema estava com uma lista de cifras moderna/incompatível, iniciando com:

<div id="bkmrk-tls_aes_256_gcm_sha3"><div><div><div><div><div><div><div></div><div><div><div><div><div>```
TLS_AES_256_GCM_SHA384<br></br>TLS_AES_128_GCM_SHA256<br></br>TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384<br></br>...
```

</div></div></div></div></div></div></div></div></div><div><div></div></div></div></div></div>Essa lista apareceu no arquivo do servidor ruim.

O servidor que funcionava estava com uma lista compatível com Windows Server 2012 R2, com cifras como:

<div id="bkmrk-tls_ecdhe_rsa_with_a"><div><div><div><div><div><div><div></div><div><div><div><div><div>```
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256<br></br>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384<br></br>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256<br></br>...
```

</div></div></div></div></div></div></div></div></div><div><div></div></div></div></div></div>Essa lista apareceu no arquivo do servidor bom.

Conclusão: a causa era a **lista de cipher suites do servidor ruim**.

- - - - - -

# 7. Correção aplicada

## 7.1 Backup da chave no servidor ruim

<div id="bkmrk-mkdir-c%3A%5Ctempreg-exp"><div><div><div><div><div><div><div><div><div></div></div></div><div><div><div><div><div>```
mkdir C:\Temp<br></br>reg export "HKLM\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002" C:\Temp\SSL-LOCAL-RUIM-BACKUP.reg /y
```

</div></div></div></div></div></div></div></div></div><div><div></div></div></div></div></div>- - - - - -

## 7.2 Exportar a chave correta no servidor bom

No servidor bom:

<div id="bkmrk-reg-export-%22hklm%5Csys"><div><div><div><div><div><div><div><div><div></div></div></div><div><div><div><div><div>```
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002" C:\Temp\SSL-LOCAL-BOM.reg /y
```

</div></div></div></div></div></div></div></div></div><div><div></div></div></div></div></div>Depois copiar o arquivo:

<div id="bkmrk-c%3A%5Ctemp%5Cssl-local-bo"><div><div><div><div><div><div><div></div><div><div><div><div><div>```
C:\Temp\SSL-LOCAL-BOM.reg
```

</div></div></div></div></div></div></div></div></div><div><div></div></div></div></div></div>para o servidor ruim.

- - - - - -

## 7.3 Importar a chave no servidor ruim

No servidor ruim:

<div id="bkmrk-reg-import-c%3A%5Ctemp%5Cs"><div><div><div><div><div><div><div><div><div></div></div></div><div><div><div><div><div>```
reg import C:\Temp\SSL-LOCAL-BOM.reg
```

</div></div></div></div></div></div></div></div></div><div><div></div></div></div></div></div>- - - - - -

## 7.4 Reiniciar o servidor

<div id="bkmrk-shutdown-%2Fr-%2Ft-0"><div><div><div><div><div><div><div><div><div></div></div></div><div><div><div><div><div>```
shutdown /r /t 0
```

</div></div></div></div></div></div></div></div></div><div><div></div></div></div></div></div>- - - - - -

# 8. Validação final

Após reiniciar, testar novamente:

<div id="bkmrk-%5Bnet.servicepointman"><div><div><div><div><div><div><div><div><div></div></div></div><div><div><div><div><div>```
[<span class="ͼ11">Net</span>.<span class="ͼ11">ServicePointManager</span>]<span class="ͼv">::</span><span class="ͼ11">SecurityProtocol</span><span class="ͼv">=</span>[<span class="ͼ11">Net</span>.<span class="ͼ11">SecurityProtocolType</span>]<span class="ͼv">::</span><span class="ͼ11">Tls12</span>; <span class="ͼv">try</span> { <span class="ͼ11">$r</span><span class="ͼv">=</span><span class="ͼ10">Invoke-WebRequest</span> <span class="ͼv">-</span><span class="ͼ11">Uri</span> <span class="ͼz">"https://api.sistemaempresarialweb.com.br/"</span> <span class="ͼv">-</span><span class="ͼ11">UseBasicParsing</span> <span class="ͼv">-</span><span class="ͼ11">TimeoutSec</span> <span class="ͼy">30</span>; <span class="ͼz">"API OK - HTTP </span>$(<span class="ͼ11">$r</span>.<span class="ͼ11">StatusCode</span>)<span class="ͼz">"</span> } <span class="ͼv">catch</span> { <span class="ͼv">if</span> (<span class="ͼ10">$_</span>.<span class="ͼ11">Exception</span>.<span class="ͼ11">Response</span>) { <span class="ͼz">"API OK - HTTP "</span> <span class="ͼv">+</span> [<span class="ͼ11">int</span>]<span class="ͼ10">$_</span>.<span class="ͼ11">Exception</span>.<span class="ͼ11">Response</span>.<span class="ͼ11">StatusCode</span> <span class="ͼv">+</span> <span class="ͼz">" "</span> <span class="ͼv">+</span> <span class="ͼ10">$_</span>.<span class="ͼ11">Exception</span>.<span class="ͼ11">Response</span>.<span class="ͼ11">StatusCode</span> } <span class="ͼv">else</span> { <span class="ͼz">"API FALHA: "</span> <span class="ͼv">+</span> <span class="ͼ10">$_</span>.<span class="ͼ11">Exception</span>.<span class="ͼ11">Message</span>; <span class="ͼv">if</span> (<span class="ͼ10">$_</span>.<span class="ͼ11">Exception</span>.<span class="ͼ11">InnerException</span>) { <span class="ͼz">"DETALHE: "</span> <span class="ͼv">+</span> <span class="ͼ10">$_</span>.<span class="ͼ11">Exception</span>.<span class="ͼ11">InnerException</span>.<span class="ͼ11">Message</span> } } }
```

</div></div></div></div></div></div></div></div></div><div><div></div></div></div></div></div>Resultado esperado:

<div id="bkmrk-api-ok---http-401"><div><div><div><div><div><div><div></div><div><div><div><div><div>```
API OK - HTTP 401
```

</div></div></div></div></div></div></div></div></div></div></div></div>