SEFAZ SP – Cifras SSL
Olá PessoaLL boa noite,
Meu intuito de escrever esse blog é para auxiliar o pessoal que está perdido sobre a nova forma de comunicação com os webservices da SEFAZ SP.
Foi liberado a alguns meses atrás uma nova forma de conexão do tipo HTTPS, como pode ser verificado no link abaixo:
Secretaria da Fazenda – Governo do Estado de São Paulo
O adapter engine do SAP PI para conexões HTTPS utiliza duas coisas para realizar a conexão, primeiro seria o certificado digital (Handshake) e trustedCA´s, o que seria as unidades certificadoras e seus respectivos padrões de conexão.
A priore se você não fizer isso você vai estar recebendo um erro de CONNECTION RESET na sxi_monitor.
Diferenças entre as cifras:
Quando uma conexão SSL é estabelecida, o cliente (navegador da Web) e o servidor da Web negociam a cifra a utilizar para a conexão. O servidor da Web tem uma lista ordenada de cifras e a primeira cifra na lista que é suportada pelo cliente é selecionada.
SSL V3 e TLSV1
Nome abreviado | Nome longo | Descrição |
3A | SSL_RSA_WITH_3DES_EDE_CBC_SHA | Triple-DES SHA (168 bits) |
33 | SSL_RSA_EXPORT_WITH_RC4_40_MD5 | RC4 SHA (40 bits) |
34 | SSL_RSA_WITH_RC4_128_MD5 | RC4 MD5 (128 bits) |
39 | SSL_RSA_WITH_DES_CBC_SHA | DES SHA (56 bits) |
35 | SSL_RSA_WITH_RC4_128_SHA | RC4 SHA (128 bits) |
35b | TLS_RSA_WITH_AES_256_CBC_SHA | AES SHA (256 bits) |
2F | TLS_RSA_WITH_AES_128_CBC_SHA | AES SHA (128 bits) |
36 | SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
A especificação criptografada 36 requer o Netscape Navigator V4.07; ele não funciona em versões anteriores dos navegadores Netscape. |
RC2 MD5 (40 bits) |
Maiores informações sobre as cifras SSL:
Transport Layer Security – Wikipédia, a enciclopédia livre
HTTPS – Wikipédia, a enciclopédia livre
Resolução desse problema para SEFAZ SP Homologação:
Basta atualizar a versão do iSalSik do seu ambiente SAP PI, que vai resolver o problema – Basicamente essas duas libs – library iaik_ssl.jar e w3c_http.jar
Caso você queria fazer o teste para saber como esta a cifra de onde você está se conectando via HTTPS+SSL
demo / iSaSiLk / Communication & Messaging Security / Products / Home – Stiftung SIC
Basta colocar o ip + porta 443, imagem abaixo é de um teste para sefaz SP.
Para você descobrir a versão do iSaSilk do seu ambiente SAP PI, você pode utilizar esse blog: SAP PI tool – XPI Inspector – criado pelo Rafael Vieira
Caso a sua versão estiver inferior a iSalSik – 3.18, faça a atualização das libs java que já foi explicado acima.
Atenciosamente,
Abraços para todos,
Ricardo Viana,
Tatiana Medina, você já resolveu ? Se não segue o procedimento acima.
Olá Ricardo, Bom dia!
Obrigada, pelo que entendi se o meu certificado que está importado no GRC já acessar a página https da Sefaz, significa que já está habilitado para autenticação no site https, correto?
Se sim, o nosso último certificado já está em ordem. Obrigada
Parabéns pelo excelente documentação.
Tatiana,
Existe uma diferença entre a utilização do certificado para assinatura digital e para o de comunicação.
Assinatura Digital - Formato .pse
Importado na STRUST, caso a empresa tenha apenas um CNPJ, na entrada NFESIG.
Comunicação
Importado na NWA para versões de SAP PI+7.1 e no visual admin para verões SAP PI - 7.0
O certificado de comunicação fica restrito para fazer o "tunelamento" https e garantir para governo quem está se comunicando com ele, pois isso ocorre o famoso "HANDSHAKE" que é a troca de certificado - publico e privado.
Porém o Adapter Engine do SAP PI utiliza algumas cadeias confiaveis para comunicação de cifras SSL - HTTPS, que ficam exatamente nessa entrada da NWA. No visual admin não sei onde fica, desculpe.
O procedimento é justamente para não ocorrer a compra de um novo certificado digital.
Obrigado pelas palavras.
Abraços,
Olá Pessoal
Essas dicas realmente me ajudaram a solicitar para minha matriz uma análise, obrigada.
Temos a versão do IAIK v3.1810000000000005
No resultado do debug por algum motivo retornou um erro 73, alguém sabe o que significa?
No client certificate CA names sent
---
SSL handshake has read 6438 bytes and written 431 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-MD5
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : RC4-MD5
Session-ID: (ocultei)
Session-ID-ctx:
Master-Key: (ocultei)
Key-Arg : None
Start Time: 1390396045
Timeout : 300 (sec)
Verify return code: 20 (unable to get local issuer certificate)
---
read:errno=73
Tati, qual debug foi realizado?
Olá Rafael,
Realizamos o debug HTTPS/SSL conforme instruções fornecidas por vc anteriormente.
Obrigada
Mas eu não detalhei nenhum procedimento de debug.
Esse que o pessoal comentou (através do Link) é para verificação somente do lado da Sefaz. Isso não valida muita coisa, mas ajuda a saber o que o sistema destino espera exatamente.
Escrevi um documento detalhando o procedimento de debug perfeito para esta verificação.
Dê uma olhada:
SAP PI tool - XPI Inspector
Muito bom o blog, parabéns aos envolvidos.
Tem bastante gente assustada com esse comunicado do governo de SP mas no fim, não é nenhum bixo de sete cabeças como estão pintando por aí.
[]'s
Obrigado José !! Valeu brow 😉
Grande Ricardo, sempre contribuindo com a comunidade.. Parabéns!
Pelo que vi no PI com instalação apenas do stack Java, já é feito desta forma..
Grande João,
Que isso, estou retribuindo um pouco do que a SCN fez por min no passado, nada mais justo 😀 .
Cara single stack é NWA direto, dual stack depende da versão 😀 .
Success
Oi Ricardo
Não ficou claro... se você ja tem o certificado importado para comunicação com a SEFAZ no PI... é necessário reimportar?
Também não entendi a parte do evitar a compra de um novo certificado.
Abraço
Eduardo Chagas
Oi Chagas,
Acho que fui técnico de mais.
Deixa eu tentar ser mais simples, para comunicação com a Sefaz é necessário duas coisas, o certificado digital para garantir a minha identidade (Chave publica + Chave privada para ocorrer o "Handshake") e também para fazer o "Tunelamento" da conexão criptografada.
O que estou explicando aqui é como fazer o "tunelamento" da conexão, pois, inicialmente me confundi com o tipo do certificado digital utilizado para o "handshake".
Como pode ser visto na imagem o adaptador do SAP PI, utiliza o certificado para identificação e tunelamento, para o tunelamento os certificado devem ficar na entrada TrustedCA e para identificação na entrada DEFAULT ou NFE, caso você tenha criado uma view separada.
Consegui ser mais claro Eduardo Chagas ?
Valeu.
Ricardo Viana.
Oi Ricardo.
Até ai tranquilo... o que não tinha ficado claro é o motivo de se reimportar o certificado da SEFAZ SP. Olhando os detalhes do certificado entendi. Na verdade é apartir deste que o PI identifica a cifra (versão) a ser utilizada. Correto?
Tks
Eduardo Chagas
Isso Eduardo !
Confesso que estou enrolado para testar isso, mais segundo Luis Naves ele fez exatamente isso e funcionou, de fato ja tive isso no passado com erro de "SSL" e resolvi assim também.
Estou na dependência de basis para subir as novas CA's na trusted CA's para ver isso, até agora aqui a SEFAZ SP está com erro 'CONNECTION RESET".
Atenciosamente,
Legal! tks
Grande Ricardo, parabéns!
Já fiz os procedimentos por aqui, mas ainda não resolveu.
Estamos aguardando a equipe BASIS subira a versão do Support Package do SAP_BASIS (que está muito antigo), para verificar se solucionará.
Abs.,
Pedro Baroni
Uma dica adicional:
Para verificar quais configurações SSL/TLS estão sendo utilizadas no Servidor de Destino (no caso SEFAZ), podemos utilizar o seguinte site:
http://demo.iaik.tugraz.at/sslinfoservlet/servlet/iaiksslserverinfo/info?hostname=<hostname>&port=443
Sendo necessário apenas incluir o Hostname desejado na URL, por exemplo:
SEFAZ SP Homologação:
http://demo.iaik.tugraz.at/sslinfoservlet/servlet/iaiksslserverinfo/info?hostname=homologacao.nfe.fazenda.sp.gov.br&port…
SEFAZ SP Produção:
http://demo.iaik.tugraz.at/sslinfoservlet/servlet/iaiksslserverinfo/info?hostname=nfe.fazenda.sp.gov.br&port=443
Abs.,
Pedro Baroni
Ricardo, parabéns pela iniciativa.
Porém, uma detalhe: esta comunicação da Sefaz está alertando para que os sistemas emissores estejam utilizando cifras compatíveis com o que a Sefaz exige (ou exigirá, no caso de produção).
O componente de handshake do PI não se atualiza sozinho apenas importando as novas CA's de homologação e produção. Por alguma coincidência isso pode até funcionar.
O que deve ser feito é uma verificação no componente iSaSiLk (que não é SAP) e que vem junto na instalação do PI.
Trata-se de uma biblioteca com as funções necessárias para executar o handshake utilizando SSL/HTTPS.
A versão iSaSiLk 3.18 contempla todas as cifras exigidas pela Sefaz-SP.
Para verificar, na ferramenta de administração Java, verifique o nível do IAIK em:
Service -> Security Provider -> Cryptography Providers, e selecione IAIK.
Sobre a necessidade de atualização do Support Package: Não é preciso! Basta atualizar a biblioteca IAIK. (obs. Não se pode fazer downgrade, apenas upgrade). O SP obviamente vai trazer o IAIK mais atual, mas atualização de SP não necessariamente é a cura.
Por fim, o ideal para verificar essa informação é executar um debug HTTPS/SSL. Aí você irá ver o seu PI comunicando coma Sefaz e negociando o handshake passo a passo e vai ver qual foi a cifra escolhida. Exemplo:
ssl_debug(399): Sending v3 client_hello message to nfe.sefaz.mt.gov.br:443, requesting version 3.2...
ssl_debug(399): Sending extensions: elliptic_curves (10), renegotiation_info (65281), ec_point_formats (11)
ssl_debug(399): Received v3 server_hello handshake message.
ssl_debug(399): Server selected SSL version 3.2.
ssl_debug(399): Server created new session 51:39:AB:D5:C9:8D:A1:80...
ssl_debug(399): CipherSuite selected by server: SSL_RSA_WITH_RC4_128_SHA
ssl_debug(399): CompressionMethod selected by server: NULL
ssl_debug(399): TLS extensions sent by the server: renegotiation_info (65281)
ssl_debug(399): Server supports secure renegotiation.
ssl_debug(399): Received certificate handshake message with server certificate.
ssl_debug(399): Server sent a 2048 bit RSA certificate, chain has 4 elements.
ssl_debug(399): Received certificate_request handshake message.
ssl_debug(399): Accepted certificate types: RSA
No caso de NF-e, pra validar isso, é muito mais fácil disparar uma comunicação entre PI e Sefaz. Se não funcionar, inicie uma investigação. Se funcionar, já está comprovado que o sistema está Okay com a Sefaz.
Abraço!
Rafael Vieira.
Rafael,
Sim essa é a opção caso nenhuma das outras funcione, atualizando as CA's ou subindo o SP do SAP BASIS.
Obrigado pela contribuição.
Você autualiza o iSaSilk que resolve, equipe basis fez isso em um cliente que trabalho e resolveu, para versao 4.4.13 ultima disponível, se eu não me engano.
Show cara,
Abracs
Oi Rafael
Isso significa que se você tiver a biblioteca atualizada não seria necessário fazer nenhuma alteração?
Abraço
Eduardo Chagas
Exato. Não precisa de mais nada.
Acredito que só o fato de estar utilizando o PI já significa que está tudo certo pra comunicar com a Sefaz (ou qualquer outro sistema que exija estas cifras mais atuais pra SSL), pois a versão 3.18 do componente, é de 2003.
A Sefaz emite estas notas porque nem todas as empresas que emitem NF-e utilizam PI e alguns sistemas usam bibliotecas bem antigas.
Mas realmente, causa muito barulho.
Abraço!
Rafael Vieira.
Isso mesmo Chagas,
Luis Naves resolveu atualizando as CA´s faltantes na entrada TrustedCA´s que fica na NWA - Versão do PI 7.3
Pedro Baroni - Resolveu atualizando o nível do Suporte Package do SWC - SAP BASIS.
Nenhum dos dois acima atualizou a versão do iSalSik.
Rafael Vieira e Ricardo Viana - Resolvi atualizando a versão do iSaSilk
Que é examente como Rafael Falou -
Para verificar, na ferramenta de administração Java, verifique o nível do IAIK em:
Service -> Security Provider -> Cryptography Providers, e selecione IAIK.
Atualizamos para 4.4.43
Acho que é isso. Vou corrigir o blog sobre esses "três" possiveis tipos de resolver.
Atenciosamente,
Ricardo VIana.
Ricardo, vou discordar parcialmente rs... Ainda bem que é esse o propósito de um fórum, a discussão afim de chegar em uma solução =)
Se alguém teve problema e resolveu atualizando CA, não foi questão de cifras porque CA é uma identificação da Sefaz, logo, não resolve nem altera nada no PI.
Talvez fosse a mesma mensagem de erro e se resolveu assim, mas a causa com certeza não era relacionada a cifras de SSL.
Da mesma forma, o caso do PI 7.3 que resolveu atualizando o SP, matou a vaca pra matar um carrapato, mas talvez no caso dele tenha sido necessário.
Valeu man!
Rafael Vieira.
Rafael,
Sem problemas.
Meu intuito de ter criado esse blog era tentar orientar o pessoal sobre essa nova mudança de tunelamento - SSL.
Sobre subir ou não a CA´s foi uma forma que o Luis Naves fez e para ele resolveu, a outra foi o Baroni, tentei as duas e não me ajudou.
Foi ai que a equipe de basis achou esse componento iSalSik e resolveu.
Anyway agora está coberto todos os pontos, quem tiver esse problema, atualize o seu iSalSik e pronto.
Abrs,
Viana.
Pessoal,
Eu continuo com uma dúvida: como faz para atualizar a biblioteca do IAIK? Tem alguma nota?
Preciso repassar as instruções para o pessoal de Basis mas não achei nenhuma referência. Aqui estamos com o PI 7.1 e o erro "Connection reset" para SP em Homologação.
Obrigado,
Bruno Hjort
Olá Bruno, boa tarde.
Pede para o pessoal de Basis verificar a nota " 1405895 - Large messages from SOAP receiver channel fail". A aplicação e no PI.
Um breve resumo, ela trata o erro abaixo:
"com.sap.engine.interfaces.messaging.api.exception.MessagingException:
java.net.SocketException:"
With SAP and Oracle JVM's the exception message is similar to "Connection reset by peer" or "Connection closed" or "Connection reset".
No meu caso o problema foi solucionado.
Abraços,
Leandro Machado.
Ricardo,
Excelentes links para realizar testes de conexão e demonstrar algum problema de conexão já que as vezes não temos acesso na maquina desktop do cliente.
Você pode sugerir no blog para utilizar a transação SM69 para realizar testes, segue documentação.
Auto-Reaction Method: Execute Operating System Command (SAP Library - The Alert Monitor)
Abraços.
Atenciosamente
Marcelo Macedo
Massa Marcelo,
Não sabia que dava via stack abap.
Boa 😀
Bom dia Ricardo,
Aqui estamos com o problema do certificado e não conseguimos até o momento uma solução.
Já reaplicamos os certificados, sequências de acesso e tudo mais, ontem foi feito a atualização dos iaik_ssl.jar e w3c_http.jar, estávamos na 3.18 foi para a 4.4..... e não resolveu o problema, e o Basis preferiu voltar os arquivos originais.
Versão no GRC :
Versão no PI:
Alguém tem alguma idéia/sugestão?
Obrigado desde já!
Não seria melhor criar uma thread informando seu problema? O pessoal teria mais visibilidade e seu problema se resolverá muito mais rápido.
Em todo caso, executou o debug: SAP PI tool - XPI Inspector ???
Na parte do handshake vc vai conseguir ver onde está falhando.
Abç
Rafael.
Sim já foi feito o XPI inpesctor,
Segue o Log do erro com a versão 4.31 do ISASILK.
Obrigado!
Pelo que dá pra identificar nesse debug, o handshake foi concluído com sucesso.
IAIK não é a razão dos seus problemas.
E, também, se você tinha a versão 3.18, não tinha motivos pra atualizar o componente.
O procedimento que eu descrevi era de apresentação da ferramenta XPI Inspector. Vc deve usá-la como uma ferramenta de diagnósticos, e não partir da idéia de que atualizar IAIK é pré-requisito para solucionar qualquer problema de certificado digital. Muito pelo contrário, ela é a última instância 😉
Agora é hora de partir pra outras questões afim de analisar as causas e solucionar o problema:
- Vc não disse qual é o problema. Qual msg de erro? Em que momento acontece?
- Trata-se de uma interface nova?
- Já conseguiu comunicar com a Sefaz alguma vez e parou ou nunca comunicou?
- Já fez todo o procedimento de instalação de .cer no VA ou NWA, Keystore Entry/View nos Adapters, CA's, etc?
Ainda acho que deveria tratar isso em uma thread, para ter a devida atenção do pessoal do fórum, ou então posta aí as respostas e continuamos.
Abç,
Rafael.
Rafael, é realmente esqueci do erro rsssss.
esta com o erro de connection reset, exatamente como no print postado pelo Ricardo.
O erro acontece no momento de consultar o status do serviço.
Não é uma interface nova. Funcionava perfeitamente antes do processo de atualização.
Sim já foi feito o processo de atualizar do cert. nas keystore.
Na vdd estou buscando uma "luz", já tem um chamado na SAP sobre este problema.
"Funcionava perfeitamente antes do processo de atualização."
Conte-me mais... rs
Que processo?
kkkkkk
Todo o processo e emissão de NFe para o estado de SP estava funcionando.
Parou de funcionar quando o sefaz atualizou as cifras em homologação em dezembro, desde então não conseguimos fazer a conexão com sucesso.
Bom dia,
Apenas por curiosidade...se a Sefaz SP mudou a forma de conexão em dezembro no ambiente em homologação e não tive problemas até hoje para emissão de NF-e, posso afirmar que meu ambiente está atualizado e não requer essa mudança quanto a Cifras? De qualquer forma pedi para o time responsável verificar.
Estamos na versão:
PI_BASIS: SAPK-73106INPIBASIS
SAP_APPL: SAPKH60606
SLL-NFE: SAPK-90015INSLLNFE
att,
Gizela
Pede para eles reverem a versão do iSaSilk apenas.
De resto está ok pelo que vejo.
Abras
Obrigada Ricardo,
Vou solicitar esta verificação. Obrigada!
Exatamente, não precisa verificar nada.
Só que isso garante a sua conexão com o ambiente de homologação, porque o de produção ainda não foi liberado.
O que vc pode fazer, de forma simples, é conectar o PI de produção na Sefaz SP Homologação e executar a Service Status Check.
Se funcionar, u r good to go 😉
Olá Hudson boa tarde.
Estou com o mesmo problema, por acaso você conseguiu resolver o problema?
Tenho até um post aberto referente a isso, caso sim você pode me orientar qual foi o procedimento que você adotou?
Meu post:
Leandro,
No meu caso estavamos no SP05 e a versão já era a 3.18, atualizamos o Patch Level que estava no 0 para o 16, que tem uma correção de SSL, com isto começou a funcionar!
Boa Sorte ai!
Olá Hudson, boa tarde.
Obrigado pelo retorno.
Já estava pensando nesta possibilidade, o meu está no 7, preciso vê com o pessoal aqui sobre a possibilidade.
Abraços,
Olá pessoal, conseguimos resolver o problema, foi necessário aplicação de uma nota.
Os detalhes estão no post
que abri referente ao problema.Abraços, e agradeço a todos pela ajuda.