Boa tarde à todos!
Tô com um problema que muitos passaram aqui no fórum, porém até agora não consegui encontrar uma solução.
Não consigo comunicar com nenhum webservice em .NET.
Dá sempre a mensagem:
403.7 - Forbidden
O serviço que estou tentando acessar é o status do SCAN
https://hom.nfe.fazenda.gov.br/NFeStatusServico/NFeStatusServico.asmx?wsdl
Este é meu método que faz segurança na aplicação antes de consumir o serviço
private void setSecurity(String pathCertificado, String senhaCertificado,
boolean a3, String keyStore) throws KeyStoreException,
NoSuchAlgorithmException, CertificateException, IOException {
if (a3) {
Provider p = new sun.security.pkcs11.SunPKCS11(pathCertificado);
Security.addProvider(p);
KeyStore ks = KeyStore.getInstance("pkcs11");
ks.load(null, senhaCertificado.toCharArray());
System.setProperty("java.protocol.handler.pkgs",
"com.sun.net.ssl.internal.www.protocol");
System.setProperty("javax.net.ssl.keyStoreType", ks.getType());
System.setProperty("javax.net.ssl.keyStorePassword",
senhaCertificado);
} else {
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", pathCertificado);
System.setProperty("javax.net.ssl.keyStorePassword",
senhaCertificado);
}
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", keyStore);
}
Creio que seja os Webservices em .NET exijam algum certificado que somente o IE possui, pois por ele eu acesso tranquilamente, mas com minha aplicação Java e pelo Firefox, neca!
Por favor ajudem um amigo Javaneiro !!!
