Skip to Content

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.

ADAPTER.png

A priore se você não fizer isso você vai estar recebendo um erro de CONNECTION RESET na sxi_monitor.

sefazSP1.JPG

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

     Se você especificar cifras V3 ou TLS, e não especificar cifras SSL V2, o suporte para SSL V2 será desativado. Se você especificar cifras SSL V2, e não especificar cifras SSL V3 ou TLS, o suporte para SSL V3 e TLS será desativado.

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.

Teste.PNG

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,

44 Comments
You must be Logged on to comment or reply to a post.
    • 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

  • 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

    • 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,

  • 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&hellip;

    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

      • 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.

  • 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 :

    702 0012 SAPKA70212
    SLL-NFE 900 0014 SAPK-90014INSLLNFE

    Versão no PI:

    711 0005 SAPKB71105

    Alguém tem alguma idéia/sugestão?

    Obrigado desde já!

      • /
        Screen Shot 2014-01-29 at 11.56.24.png
        • 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.

          • 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

          • 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 😉

          • 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.

            SAP_BASIS 711 0007 SAPKB71107
            PI_BASIS 711 0005 SAPK-71105INPIBASIS

            Abraços,