Oi pessoal, estou tentando fazer um robozinho pra varrer um site, o problema é que neste site o usuário se loga com um certificado digital, meu cliente já me passou certificado digital e eu já criei um a keystore (teste.jks) através do keytool usando o certificado do meu cliente e a cadeia de dependência do certificado dele, segue abaixo procedimentos já executados, e código:
C:\Program Files\Java\jre6\bin>keytool -import -alias ACRAIZv1 -file d:\chaves\ACRAIZv1.cer -keystore d:\chaves\teste.jks
C:\Program Files\Java\jre6\bin>keytool -import -alias acrfb -file d:\chaves\acrfb.cer -keystore d:\chaves\teste.jks
C:\Program Files\Java\jre6\bin>keytool -import -alias acrfbv3 -file d:\chaves\acrfbv3.cer -keystore d:\chaves\teste.jks
C:\Program Files\Java\jre6\bin>keytool -import -alias ACSERPRORFB -file d:\chaves\ACSERPRORFB.crt -keystore d:\chaves\teste.jks
C:\Program Files\Java\jre6\bin>keytool -import -alias acserprorfbv3 -file d:\chaves\acserprorfbv3.cer -keystore d:\chaves\teste.jks
C:\Program Files\Java\jre6\bin>keytool -import -alias icpbrasilv2 -file d:\chaves\icpbrasilv2.cer -keystore d:\chaves\teste.jks
//O certificado cliente.cer, foi obtido atravez do google chrome, exportando o certificado já instalado. Porém tenho o certificado cliente.pfx
C:\Program Files\Java\jre6\bin>keytool -import -alias Cliente -file d:\chaves\cliente.cer -keystore d:\chaves\teste.jks
Codigo:
public ClienteWebService(){
URL url;
try {
//Estas duas geram o erro 403
String stringURL = "https://www4c.receita.fazenda.gov.br/siscomexImpweb-7/private_siscomeximpweb_inicio.do";
// String stringURL = "https://www4c.receita.fazenda.gov.br/siscomexImpweb-7/inicio.html";
//Esta Url não passa tem o "login" com o certificado dele e funciona legal...
// String stringURL = "https://www4.receita.fazenda.gov.br/siscomexImpweb-7/login_cert.jsp";
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", "D:\\chaves\\cliente.pfx");
// System.setProperty("javax.net.ssl.keyStorePassword", "senhacliente");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "D:\\chaves\\teste.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "senhaTeste");
url = new URL(stringURL);
URLConnection connection = url.openConnection();
connection.connect();
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
}
Erro recebido:
java.io.IOException: Server returned HTTP response code: 403 for URL: https://www4c.receita.fazenda.gov.br/siscomexImpweb-7/private_siscomeximpweb_inicio.do
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at br.com.Aberta.ClienteAbertaWS.ClienteWebService.<init>(ClienteWebService.java:60)
at br.com.Aberta.ClienteAbertaWS.ClienteAbertaWS.main(ClienteAbertaWS.java:9)
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://www4c.receita.fazenda.gov.br/siscomexImpweb-7/private_siscomeximpweb_inicio.do
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getHeaderFields(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderFields(Unknown Source)
at br.com.Aberta.ClienteAbertaWS.ClienteWebService.<init>(ClienteWebService.java:57)
... 1 more
Já estou a uns 3 dias neste projeto e consegui chegar até aqui, alguém saberia me ajudar…
Valeu Desde já, Obrigado.
Sandro Mueller