quarta-feira, 28 de julho de 2021

Problemas com Protocolo TLS 1.2 e incompatibilidadesdes na NF-e 4.00



O Protocolo TLS 1.2 passa a ser obrigatório para emissão de NF-e e NFC-e a partir da NF-e 4.00. Conforme descrito na NT 2016.002, o Protocolo SSL foi substituído pelo TLS 1.2 por questões de segurança.

Os Webservices dos documentos fiscais NF-e, NFC-e, CT-e, CT-e OS e MDF-e não aceitarão mais documentos fiscais emitidos através do Protocolo de Comunicação SSL.

Como ativar o Protocolo TLS 1.2 no Windows:

- Vá até o Painel de Controle do Windows.

- Escolha a Opção "Opções da Internet"; 

- Vá até a aba “Avançadas”,

- No bloco “Configurações”, vá até as últimas opções;

- Marque: Não salvar páginas criptografadas em disco;

- Marque: Usar SSL 3.0; 

- Desmarque: Usar SSL 2.0; 

- Marque: Usar TLS 1.0; 

- Desmarque: Usar TLS 1.1;

- Marque: Usar TLS 1.2;

- Clique em OK.

 

Além dessas configurações de TLS/SSL, algumas versões Windows não dão suporte ao protocolo TLS 1.2.

 

Veja a lista de Windows que NÃO FUNCIONAM:

- Windows Server 2003

- Windows Server 2008

- Windows Server 2008 - SP2 

- Windows Server 2008 - R2 SP1

- Windows 7 - Sem SP1 

- Windows 8

- Windows Vista

- Windows XP

Para esses casos, a solução é instalar uma outra versão do sistema operacional.

Você ainda pode ter problemas com outras versões do Windows, pois nem todos vem nativamente habilitados para o uso desse protocolo, portanto, será necessário executar o Windows Update para que as atualizações necessárias sejam instalados, e o protocolo seja habilitado.

Obs.: Após instalar algumas das atualizações será necessário reiniciar o Windows, lembre-se de sempre que iniciar novamente, abrir o Windows Update novamente e conferir se não apareceram novas atualizações, se houverem, inicie novamente o processo de instalação.

Para sistemas construídos em linguagem Java, o TLS 1.2 é suportado apenas pela versão 1.7 ou superior do Java, portanto, caso utilize uma versão anterior a 1.7, o Java deve ser atualizado também.

Lembramos ainda que no ambiente de homologação é exigido que o sistema emissor envie a cadeia completa do certificado, conforme descrito nesta nota: http://www.nfe.go.gov.br/post/ver/182650/obrigatoriedade-de-apresentacao-de-cadeia-de-certificacao-completa

 

Fonte: https://www.economia.go.gov.br/receita-estadual/documentos-fiscais/comunicados-t%C3%A9cnicos-documentos-fiscais/4901-problemas-com-protocolo-tls-1-2-e-incompatibilidadesdes-na-nf-e-4-00.html

terça-feira, 27 de julho de 2021

Emitindo um certificado, configurando um servidor SSL Apache 2.4 Windows


1. Primeiramente devemos fazer a instalação do software para emissão do Certificado.

Para isto iremos usar o Openssl. No link abaixo poderá ser encontrado o download da versão do windows, ou seja 32 ou 64. 

http://slproweb.com/products/Win32OpenSSL.html

1.1. Faça a instalação da maneira recomendada, bastando clicar em NEXT até o final da instalação.


2. Gerando o Certificado SSL.

entre com o comando do windows CMD para abrir o prompt de comando no modo administrador.

openssl req -x509 -nodes -days 10000 -newkey rsa:2048 -keyout server.key -out server.crt

Então será pedido informações para o certificado, caso não deseje informar basta deixar todos os campos em branco.

Então será gerado na pasta do apache/conf os arquivos server.key e server.crt.

3. Instalando o Certificado

Então será necessário instalar o certificado gerador "server.crt",

no repositório do Windows.

Então basta clicar em cima do arquivo e instalar ele como arquivos

de certificado confiáveis.

4. Configurando o Apache

4.1 Entre na pasta apache/config e procure pelo arquivo "http.conf",

neste arquivo será necessário, habilitar o módulo ssl e o cache.

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so (aproximadamente linha 174) LoadModule ssl_module modules/mod_ssl.so (aproximadamente linha 176)

4.2 Também no mesmo arquivo tirar o comentário na 527, para ter acesso ao arquivo httpd-ssl.conf.

Include conf/extra/httpd-ssl.conf (aproximadamente linha 527)

4.3 Vá até o arquivo httpd-ssl.conf que se encontra na pasta apache/conf/extra e altere o caminho do certificado gerado conforme abaixo.

SSLCertificateFile "c:/apache/ssl/server.crt" (aproximadamente linha 144) SSLCertificateKeyFile "c:/Apache/ssl/server.key" (aproximadamente linha 154)

Lembrando que os arquivos server.crt e server.key, devem estar na pasta indicada apache/ssl.

5. Criando o virtual host para a porta ssl.

5.1 vá até o arquivo httpd-vhosts.conf que se encontra na mesma pasta do httpd-ssl.conf, e inclua mais um virtual host para a porta desejada ssl.

Como exemplo:

<VirtualHost *:443>
ServerName seudominio.com.br
ServerAlias www.seudominio.com.br
DocumentRoot "C:/xampp/htdocs/seudominio"
<Directory "C:/xampp/htdocs/seudominio">
Options +Indexes +Includes +FollowSymLinks +MultiViews
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile "c:/apache/ssl/server.crt"
SSLCertificateKeyFile "c:/apache/ssl/server.key"
SSLCertificateChainFile "c:/apache/ssl/server.crt"
</VirtualHost>

Indicando também o caminho do certificado.

Basta agora reinciar o servidor apache e fazer o teste. :D