Nfe - Nota Fiscal Eletronica

[quote=Diego Martins]Olá Boa Tarde a todos!

Comecei a trabalhar com a nfe a pouco tempo mas ja consegui fazer a consulta ao Status do Serviço o tutorial que encontrei aqui http://www.guj.com.br/posts/list/15/52035.java foi de grande ajuda mas como nem tudo é perfeito estou começando a ter problemas, parti para a consulta de cadastro do contribuinte e tentei seguir mais ou menos os mesmos passos mas agora ele apresenta o seguinte erro:

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
faultActor:
faultNode:
faultDetail:

esta ligado a algum problema no certificado digital… blz agora vem as minhas duvidas se alguma boa alma puder ajudar…

eu acredito q o meu problema esta na keystore (veja bem acredito não tenho certeza) neste tutorial q foi criado ele ensina como cria-la fiz como esta descrito e é gerado o .keystore só q eu vejo q em alguns trechos de cód. as pessoas usarem um arq .jks qual a diferença? o meu .keystore não funciona? se não como faço para gerar este tal .jks eu vi em outros posts explicando mas eles dizem q deve ser gerado a partir de um .pfx o certificado da empresa aqui é um .pfx mas o q vem la da sefaz é um .p7b…
outra coisa eu percebi q para a consulta do status de serviço eu posso comentar todas estas linhas q continua funcionando:

System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12”);
System.setProperty(“javax.net.ssl.keyStore”, caminhoPfx);
System.setProperty(“javax.net.ssl.keyStorePassword”, senhaPfx);

System.setProperty(“javax.net.ssl.trustStoreType”, “JKS”);
System.setProperty(“javax.net.ssl.trustStore”, caminhoKeyStore);

é como se para o status não precisa-se de uma validaçao de certificado mas para a consulta de cadastro de contribuinte sim…

Alguem pode me ajudar ou pelo menos me dar um caminho se pelo menos der uma maior explicação ja agradeço, desde ja muito grato[/quote]

tenta baixar a cadeia de certificados da sefaz q vc esta utilizando e cria um jks…
eu particulamente usei um codigo postado pelo f-schmitt eu não tenho certeza mas acho q foi ele…

package rj.nfe.engine.webservice;
import java.io.*;
import java.security.*;
import java.security.cert.*;

import javax.net.ssl.*;

public class InstallCert {   
  
    public static void main(String[] args) throws Exception 
    {   
        System.out.println("Aqui: "+args[0]);   
        String host;   
        int port;   
        char[] passphrase;   
        if ((args.length == 1) || (args.length == 2)) 
        {   
            String[] c = args[0].split(":");   
            host = c[0];   
            port = (c.length == 1) ? 443 : Integer.parseInt(c[1]);   
            String p = (args.length == 1) ? "changeit" : args[1];   
            passphrase = p.toCharArray();   
        } 
        else 
        {   
            System.out.println("Usage: java InstallCert <host>[:port] [passphrase]");   
            return;   
        }   
  
        File file = new File("jssecacerts");   
        if (file.isFile() == false) 
        {   
            char SEP = File.separatorChar;   
            File dir = new File(System.getProperty("java.home") + SEP + "'lib" + SEP + "security");   
            file = new File(dir, "jssecacerts");   
            if (file.isFile() == false)             
            {   
                file = new File(dir, "cacerts");   
            }   
        }   
        System.out.println("Loading KeyStore " + file + "...");   
        InputStream in = new FileInputStream(file);   
        KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());   
        ks.load(in, passphrase);   
        in.close();   
  
        SSLContext context = SSLContext.getInstance("TLS");   
        TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());   
        tmf.init(ks);   
        X509TrustManager defaultTrustManager = (X509TrustManager) tmf.getTrustManagers()[0];   
        SavingTrustManager tm = new SavingTrustManager(defaultTrustManager);   
        context.init(null, new TrustManager[] { tm }, null);   
        SSLSocketFactory factory = context.getSocketFactory();   
  
        System.out.println("Opening connection to " + host + ":" + port + "...");   
        SSLSocket socket = (SSLSocket) factory.createSocket(host, port);  
        socket.setSoTimeout(10000);   
        try 
        {   
            System.out.println("Starting SSL handshake...");   
            socket.startHandshake();   
            System.out.println();   
            System.out.println("No errors, certificate is already trusted");   
        } 
        catch (SSLException e) 
        {   
            System.out.println();   
            e.printStackTrace(System.out);   
        }   
  
        X509Certificate[] chain = tm.chain;   
        if (chain == null) 
        {   
            System.out.println("Could not obtain server certificate chain");   
            return;   
        }   
  
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));   
  
        System.out.println();   
        System.out.println("Server sent " + chain.length + " certificate(s):");   
        System.out.println();   
        MessageDigest sha1 = MessageDigest.getInstance("SHA1");   
        MessageDigest md5  = MessageDigest.getInstance("MD5");   
        for (int i = 0; i < chain.length; i++) 
        {   
            X509Certificate cert = chain[i];   
            System.out.println(" " + (i + 1) + " Subject " + cert.getSubjectDN());   
            System.out.println("   Issuer  " + cert.getIssuerDN());   
            sha1.update(cert.getEncoded());   
            System.out.println("   sha1    " + toHexString(sha1.digest()));   
            md5.update(cert.getEncoded());   
            System.out.println();   
        }   
        System.out.println("   md5     " + toHexString(md5.digest()));   
  
        System.out.println("Enter certificate to add to trusted keystore or 'q' to quit: [1]");   
        String line = reader.readLine().trim();   
        int k;   
        try 
        {   
            k = (line.length() == 0) ? 0 : Integer.parseInt(line) - 1;   
        } 
        catch (NumberFormatException e) 
        {   
            System.out.println("KeyStore not changed");   
            return;   
        }   
  
        X509Certificate cert = chain[k];   
        String alias = host + "-" + (k + 1);   
        ks.setCertificateEntry(alias, cert);   
  
        OutputStream out = new FileOutputStream("jssecacerts");   
        ks.store(out, passphrase);   
        out.close();   
  
        System.out.println();   
        System.out.println(cert);   
        System.out.println();   
        System.out.println("Added certificate to keystore 'jssecacerts' using alias '" + alias + "'");   
    }   
  
    private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray();   
  
    private static String toHexString(byte[] bytes) 
    {   
        StringBuilder sb = new StringBuilder(bytes.length * 3);   
        for (int b : bytes) 
        {   
            b &= 0xff;   
            sb.append(HEXDIGITS[b >> 4]);   
            sb.append(HEXDIGITS[b & 15]);   
            sb.append(' ');   
        }   
        return sb.toString();   
    }   
  
    private static class SavingTrustManager implements X509TrustManager 
    {   
  
        private final X509TrustManager tm;   
        private X509Certificate[] chain;   
  
        SavingTrustManager(X509TrustManager tm)
        {   
            this.tm = tm;   
        }   
  
        public X509Certificate[] getAcceptedIssuers() 
        {   
            throw new UnsupportedOperationException();   
        }   
  
        public void checkClientTrusted(X509Certificate[] chain, String authType)throws CertificateException
        {   
            throw new UnsupportedOperationException();   
        }   
  
        public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException 
        {   
            this.chain = chain;   
            tm.checkServerTrusted(chain, authType);   
        }   
    }   
  
}  

//Aqui está a chamada para o código acima
InstallCert.main(new String[] {new String("homologacao.nfe.sefaz.rs.gov.br") });

para

ai segue o codigo q baixa a cadeia de certificado automaticamente…

se der certo posta ai

Obrigado Alex por indicar o caminho com a sua classe InstallCert eu não consegui rodar dava o seguinte erro:

Aqui: homologacao.nfe.fazenda.sp.gov.br
Loading KeyStore C:\Arquivos de programas\Java\jre6’lib\security\cacerts…
Exception in thread “main” java.io.FileNotFoundException: C:\Arquivos de programas\Java\jre6’lib\security\cacerts (O sistema não pode encontrar o caminho especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at InstallCert.main(InstallCert.java:42)

mas eu encontrei a mesma classe InstallCert em outro site (http://amargarido.wordpress.com/2009/06/14/parte-2-consulta-cnpjnf-e-tutorial/) ai foi, eu nem fiquei olhando as diferenças q tem entre as nas duas pq só fui conseguir agora e não importa tb… mas continuando eu consegui gerar o arq jssecacerts e agora vem mais duvidas rs (desculpa sou leigo estou correndo atras pra fazer saiu a consulta de status agora vou atras deste outro) este arq jssecacerts eu tenho q substitui-lo no lugar do cacerts? estou perguntando pq segundo o tutorial deste site q indiquei ai em cima ele diz "Copiei o meu novo jssecacerts sobre o cacerts " ta blz eu tentei deixar os dois ou só com um mas ainda não foi… da o mesmo erro de validação do certificado.
Eu indiquei la o caminho deste jssecacerts aqui:
System.setProperty(“javax.net.ssl.trustStore”, caminhoJssecacerts); mas acho q não é isso… eu fiquei ainda na duvida do .jks eu achava q seria esta classe q vc me passou q iria criaria-lo mas não foi, desculpa a minha ignorancia se for o caso mas eu não deveria cria-lo? Bom se puder me ajudar novamente agradeço muito, a sua resposta me ajudou a descobrir o caminho anteriormente se puder de novo…

Me deparei com este problema tambem. O XML contem a NFe ja autorizada e o protocolo compondo o nfeProc cfe
manual.
Porem, ao ser visualizado pelo “Visualizador NFeCTe 4.0a”, diz que a assinatura da NFe é invalida.
Liguei pro 0800 e me deram a super ideia de olhar no manual de integracao 4.00 :frowning:

Em tempo, o validador de mensagens da SEFAZ/RS diz que a assinatura é valida, o conteudo esta ok, etc…

No aguardo de algum retorno.

Alencar

[quote=Diego Martins]Obrigado Alex por indicar o caminho com a sua classe InstallCert eu não consegui rodar dava o seguinte erro:

Aqui: homologacao.nfe.fazenda.sp.gov.br
Loading KeyStore C:\Arquivos de programas\Java\jre6’lib\security\cacerts…
Exception in thread “main” java.io.FileNotFoundException: C:\Arquivos de programas\Java\jre6’lib\security\cacerts (O sistema não pode encontrar o caminho especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at InstallCert.main(InstallCert.java:42)

mas eu encontrei a mesma classe InstallCert em outro site (http://amargarido.wordpress.com/2009/06/14/parte-2-consulta-cnpjnf-e-tutorial/) ai foi, eu nem fiquei olhando as diferenças q tem entre as nas duas pq só fui conseguir agora e não importa tb… mas continuando eu consegui gerar o arq jssecacerts e agora vem mais duvidas rs (desculpa sou leigo estou correndo atras pra fazer saiu a consulta de status agora vou atras deste outro) este arq jssecacerts eu tenho q substitui-lo no lugar do cacerts? estou perguntando pq segundo o tutorial deste site q indiquei ai em cima ele diz "Copiei o meu novo jssecacerts sobre o cacerts " ta blz eu tentei deixar os dois ou só com um mas ainda não foi… da o mesmo erro de validação do certificado.
Eu indiquei la o caminho deste jssecacerts aqui:
System.setProperty(“javax.net.ssl.trustStore”, caminhoJssecacerts); mas acho q não é isso… eu fiquei ainda na duvida do .jks eu achava q seria esta classe q vc me passou q iria criaria-lo mas não foi, desculpa a minha ignorancia se for o caso mas eu não deveria cria-lo? Bom se puder me ajudar novamente agradeço muito, a sua resposta me ajudou a descobrir o caminho anteriormente se puder de novo…[/quote]

Eita que o InstallCert ficou famoso hehehe, foi uma adaptação de uma classe da sun q encontrei

O jssecacerts não deve substituir no cacerts, ali é cada um no seu quadrado…

Uma coisa que me chamou a atenção foi o 'lib

é C:\Arquivos de programas\Java\jre6’lib\security\cacerts
ou C:\Arquivos de programas\Java\jre6\lib\security\cacerts

abraço
Fernando

[quote=philler]
Me deparei com este problema tambem. O XML contem a NFe ja autorizada e o protocolo compondo o nfeProc cfe
manual.
Porem, ao ser visualizado pelo “Visualizador NFeCTe 4.0a”, diz que a assinatura da NFe é invalida.
Liguei pro 0800 e me deram a super ideia de olhar no manual de integracao 4.00 :frowning:
Alencar[/quote]

Incrivel! Enquanto procurava pela solucao do problema, uma nova versao do visualizador (4.0b) foi disponibilizada
resolvendo o erro.
Eita pessoal eficiente. :lol:

Alencar

[quote=philler]
Incrivel! Enquanto procurava pela solucao do problema, uma nova versao do visualizador (4.0b) foi disponibilizada
resolvendo o erro.
Eita pessoal eficiente. :lol:

Alencar[/quote]

Haaa, eles devem estar acompanhando o forum… 8)

[quote=f-schmitt][quote=philler]
Incrivel! Enquanto procurava pela solucao do problema, uma nova versao do visualizador (4.0b) foi disponibilizada
resolvendo o erro.
Eita pessoal eficiente. :lol:

Alencar[/quote]

Haaa, eles devem estar acompanhando o forum… 8)[/quote]

Ou algumas centenas de ligacoes pro 0800…
A correcao do bug foi tao as pressas que esqueceram de alterar a versao no “Sobre”.
“Visualizador de Documentos Fiscais Eletrônicos - versão 4.0a”

Caso eles estejam acompanhando este forum, deve sair a versão 4.0c corrigindo a correcao.

Alencar

[quote=Diego Martins]Obrigado Alex por indicar o caminho com a sua classe InstallCert eu não consegui rodar dava o seguinte erro:

Aqui: homologacao.nfe.fazenda.sp.gov.br
Loading KeyStore C:\Arquivos de programas\Java\jre6’lib\security\cacerts…
Exception in thread “main” java.io.FileNotFoundException: C:\Arquivos de programas\Java\jre6’lib\security\cacerts (O sistema não pode encontrar o caminho especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at InstallCert.main(InstallCert.java:42)

mas eu encontrei a mesma classe InstallCert em outro site (http://amargarido.wordpress.com/2009/06/14/parte-2-consulta-cnpjnf-e-tutorial/) ai foi, eu nem fiquei olhando as diferenças q tem entre as nas duas pq só fui conseguir agora e não importa tb… mas continuando eu consegui gerar o arq jssecacerts e agora vem mais duvidas rs (desculpa sou leigo estou correndo atras pra fazer saiu a consulta de status agora vou atras deste outro) este arq jssecacerts eu tenho q substitui-lo no lugar do cacerts? estou perguntando pq segundo o tutorial deste site q indiquei ai em cima ele diz "Copiei o meu novo jssecacerts sobre o cacerts " ta blz eu tentei deixar os dois ou só com um mas ainda não foi… da o mesmo erro de validação do certificado.
Eu indiquei la o caminho deste jssecacerts aqui:
System.setProperty(“javax.net.ssl.trustStore”, caminhoJssecacerts); mas acho q não é isso… eu fiquei ainda na duvida do .jks eu achava q seria esta classe q vc me passou q iria criaria-lo mas não foi, desculpa a minha ignorancia se for o caso mas eu não deveria cria-lo? Bom se puder me ajudar novamente agradeço muito, a sua resposta me ajudou a descobrir o caminho anteriormente se puder de novo…[/quote]

Só lembrando q o código do “InstallCert” postado por mim foi pego em um post do f-schmitt…e complementando o que ele falou cacerts não deve ser sobrescrito pelo jssecacerts
tendo só o jssecacerts vc ja consegue fazer a comunicação com a receita
vou passar alguns passos aqui vamos ver se vai ajudar vc

//primeira parte obrigatório tanto para certificado A1 quanto para o A3
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");    
System.setProperty("javax.net.ssl.trustStore", "jssecacerts");//caminho do arquivo criado pelo o InstallCert no caso o jssecacerts      
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");					

//caso vc esteja usando tipo de certificado A1 vc usa esse trecho de código

//INICIO DO TIPO A1
System.setProperty("javax.net.ssl.keyStore", "CAMINHO DO ARQUIVO .PFX");
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");				
System.setProperty("javax.net.ssl.keyStorePassword", "SENHA DO CERTIFICADO");
//FIM DO TIPO A1

//caso vc esteja usando tipo de certificado A3 vc usa esse trecho de código
//INICIO DO TIPO A3

Provider provider = new sun.security.pkcs11.SunPKCS11("CAMINHO DO ARQUIVO DE CONFIGURAÇÃO DO SMARTCARD");
Security.addProvider(provider);

System.setProperty("javax.net.ssl.keyStore", "NONE");				
System.setProperty("javax.net.ssl.keyStoreType", "PKCS11");
System.setProperty("javax.net.ssl.keyStoreProvider", "SunPKCS11-SmartCard");
System.setProperty("javax.net.ssl.keyStorePassword", "SENHA DO CERTIFICADO");
//FIM DO TIPO A3

de preferência faz um ifzinho para dar suporte aos 2 tipos de certificados =)
espero ter ajudado

[quote=f-schmitt][quote=Diego Martins]Obrigado Alex por indicar o caminho com a sua classe InstallCert eu não consegui rodar dava o seguinte erro:

Aqui: homologacao.nfe.fazenda.sp.gov.br
Loading KeyStore C:\Arquivos de programas\Java\jre6’lib\security\cacerts…
Exception in thread “main” java.io.FileNotFoundException: C:\Arquivos de programas\Java\jre6’lib\security\cacerts (O sistema não pode encontrar o caminho especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at InstallCert.main(InstallCert.java:42)

mas eu encontrei a mesma classe InstallCert em outro site (http://amargarido.wordpress.com/2009/06/14/parte-2-consulta-cnpjnf-e-tutorial/) ai foi, eu nem fiquei olhando as diferenças q tem entre as nas duas pq só fui conseguir agora e não importa tb… mas continuando eu consegui gerar o arq jssecacerts e agora vem mais duvidas rs (desculpa sou leigo estou correndo atras pra fazer saiu a consulta de status agora vou atras deste outro) este arq jssecacerts eu tenho q substitui-lo no lugar do cacerts? estou perguntando pq segundo o tutorial deste site q indiquei ai em cima ele diz "Copiei o meu novo jssecacerts sobre o cacerts " ta blz eu tentei deixar os dois ou só com um mas ainda não foi… da o mesmo erro de validação do certificado.
Eu indiquei la o caminho deste jssecacerts aqui:
System.setProperty(“javax.net.ssl.trustStore”, caminhoJssecacerts); mas acho q não é isso… eu fiquei ainda na duvida do .jks eu achava q seria esta classe q vc me passou q iria criaria-lo mas não foi, desculpa a minha ignorancia se for o caso mas eu não deveria cria-lo? Bom se puder me ajudar novamente agradeço muito, a sua resposta me ajudou a descobrir o caminho anteriormente se puder de novo…[/quote]

Eita que o InstallCert ficou famoso hehehe, foi uma adaptação de uma classe da sun q encontrei

O jssecacerts não deve substituir no cacerts, ali é cada um no seu quadrado…

Uma coisa que me chamou a atenção foi o 'lib

é C:\Arquivos de programas\Java\jre6’lib\security\cacerts
ou C:\Arquivos de programas\Java\jre6\lib\security\cacerts

abraço
Fernando
[/quote]

De fato tirando a ’ a classe q ele me passou tb funciona… mas assim e agora o q faço com este arq jssecacerts? o q devo indicar aqui
System.setProperty(“javax.net.ssl.trustStore”, ???);

é bem isso, deixa o servidor como confiável, assim o SSL acessa, conforme o post anterior do alexborges.

Fernando

[quote]
De fato tirando a ’ a classe q ele me passou tb funciona… mas assim e agora o q faço com este arq jssecacerts? o q devo indicar aqui
System.setProperty(“javax.net.ssl.trustStore”, ???);[/quote]

O InstallCert só precisa ser executado 1 vez para baixar o arquivo jssecacerts

Funcionou!!! hahahaha aleluia.

Bom vou dizer o meu possivel vacilo pode ter algum cabeçudo q nem eu rs… na hora de gerar o jssecacerts ele te da 3 opções eu estava sempre dando um enter direto ou colocava 1 e ai nunca funcionava até q parei pra ler tudo e percebi q ele te da tres opções e ai testei com o 2 e foi… quando funcionou para testar eu coloquei de novo o q foi gerado pela primeira opção e voltou a dar erro vou até colocar a saida aqui rs fiquei 2 dias tentando fazer funcionar rs

<?xml version="1.0" encoding="UTF-8" ?>
  • SP_NFE_PL_005d 260 Rejeição: IE da consulta inválida SP 123456789012 2009-10-22T10:51:02 35

Bom agradeço a todos, valeu mesmo pela paciencia um abraço!

Por que não consigo verificar o Status com esse certificado Associacao?

[code]public void statusServico() {
String nfeCabecMsg = “” +
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<cabecMsg xmlns=“http://www.portalfiscal.inf.br/nfe” " + “versao=“1.02”>” +
" " + ValidarXML.VERSAO_STATUS + “” +
"";
String nfeDadosMsg = “” +
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<consStatServ " + " versao="" + ValidarXML.VERSAO_STATUS + “”" + " xmlns=“http://www.portalfiscal.inf.br/nfe">" +
“2” +
“35” + /* SP = 35 */
“STATUS” +
”";

    System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
    Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

    System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");

    System.setProperty("javax.net.ssl.keyStore", "C:\\Projetos\\Desktop\\KNFe\\Associacao.pfx");

    System.setProperty("javax.net.ssl.keyStorePassword", "associacao");

    System.setProperty("javax.net.ssl.trustStoreType", "JKS");
    System.setProperty("javax.net.ssl.trustStore", "C:\\Projetos\\Desktop\\KNFe\\nfe.keystore");

    NfeStatusServico service = new NfeStatusServico();

    try {
        NfeStatusServicoSoap nfeStatus = service.getNfeStatusServicoSoap();
        // O retorno deve ser um XML com o status do serviço
        System.out.println(nfeStatus.nfeStatusServicoNF(nfeCabecMsg, nfeDadosMsg));
    } catch (Throwable ex) {
        System.out.println("Erro status serviço: " + ex.getMessage());
    }
}[/code]Sempre retorna no Exception:

Erro status serviço: [color=red]The server sent HTTP status code 403: Forbidden[/color]

Instale este certificado no seu navegador e tente acessar este endereco:

https://homologacao.nfe.sefaz.rs.gov.br/ws/nferecepcao/NfeRecepcao.asmx?wsdl

Se conseguir o certificado esta ok. Se nao, vai te dar o mesmo erro de forbidden.

Alencar

Instalei e continua dando o erro de Forbiden.

Verifiquei que o certificado vence em 2 de outubro de 2010, era para pelo menos conseguir verificar o status do serviço com ele, já que enviar nota não é possível, embora eu ache que para o ambiente de teste deveria poder enviar com um certificado de testes, depois era só trocar por um certificado verdadeiro e trabalhar no ambiente normal.

Este seu e-cnpj é um ICP brasil válido? há algo de errado com seu certificado, porque no navegador não tem errada, conforme no printscreen anexo…


[quote=javer]Instalei e continua dando o erro de Forbiden.

Verifiquei que o certificado vence em 2 de outubro de 2010, era para pelo menos conseguir verificar o status do serviço com ele, já que enviar nota não é possível, embora eu ache que para o ambiente de teste deveria poder enviar com um certificado de testes, depois era só trocar por um certificado verdadeiro e trabalhar no ambiente normal.[/quote]
Provavelmente este certificado nao é do tipo autenticacao.

Alencar

Pessoal, vocês já receberam essa resposta:

?

essa nunca vi…

é um certificado válido ICP Brasil?

Isso deve ter acontecido devido a problemas com o CNPJ informado!

Att