Professional Documents
Culture Documents
Aps abrir o menu, selecione a opo Internet Options ou Opes da Internet conforme figura abaixo:
Clique aqui.
Aps clicar no boto Certificates ou Certificados, ser apresentada uma nova janela conforme a figura abaixo:
Pressione com o mouse no boto Import para importar o certificado A1 do cliente com extenso .PFX
Aps pressionar o boto Import... ser apresentada uma janela conforme figura abaixo. Pressione Next para continuar a importao do certificado.
Aps selecionar o certificado desejado, pressione o boto Next para confirmar a seleo.
Em seguida ser apresentado o painel para seleo do certificado do cliente que ser importado. Pressione o boto Browse... para selecionar o certificado do cliente. Veja figura abaixo:
Clique aqui para selecionar o certificado.
Clique aqui.
Aps selecionar o certificado desejado, pressione o boto Open para confirmar a seleo.
Neste painel est uma das partes mais importantes para que o certificado funcione quando utilizado na linguagem Java e tambm no momento da exportao do certificado final. Falaremos mais adiante sobre este assunto. No se esquea de marcar a opo Enable Strong private key protection(Habilitar a proteo forte de chave privada) e a opo Mark this key as exportable(Marcar esta chave como exportvel). Isto lhe poupar muitas dores de cabea e tempo em pesquisa em fruns e tambm nos pedidos de suporte.
Se tudo deu certo e o certificado for vlido, o Internet Explorer dever apresentar uma tela similar a esta indicando que o certificado foi importado com sucesso.
CERTIFICADO DO CLIENTE
Aps pressionar o boto Export... ser apresentada a tela de boas vindas. Veja figura abaixo.
Este painel uma das partes mais importante da exportao do certificado para funcionar em Java, pois normalmente, por padro, o IE no habilita a opo de exportao de chave primria conforme figura abaixo. Lembra das opes Enable Strong private key protection(Habilitar a proteo forte de chave privada) e a opo Mark this key as exportable(Marcar esta chave como exportvel) ? Sem estas opes habilitadas a opo Yes, export the private key fica inacessvel.
Em funo da seleo anterior, o IE habilitar a opo que precisamos para gerar o certificado na forma correta para utilizao em Java.
Enfim, o que realmente interessa para que o certificado funcione utilizando o Java para conectar o servidor SSL da ISS-Intel.
Informe a senha do certificado para gerao do novo PFX no padro PKCS #12. Veja figura abaixo:
Informe o nome do arquivo para o novo certificado que ser utilizado no Java. Veja figura abaixo.
Aps informar o nome do arquivo pressione o boto Save. Veja figura abaixo:
Nome do certificado que ser utilizado no Java j com toda a cadeia de certificados inclusa no PFS.
Pressione o boto Finish para finalizar o processo de exportao do certificado. Veja figura abaixo:
Se tudo deu certo e o certificado for vlido, o Internet Explorer dever apresentar uma tela similar a esta indicando que o certificado foi importado com sucesso.
ETAPA 3 EXPORTAR O CERTIFICADO DA ISS-INTEL PARA UM ARQUIVO TIPO DER COM A EXTENSO .CER.
Para completar a cadeia de certificados necessrio para conexo Java, voc dever exportar o certificado da ISS-Inter para uma aquivo DER e posteriormente criar um KeyStore incluindo este certificado como Trust. Veja figura abaixo:
Aps pressionar o boto Export... ser apresentada a tela de boas vindas. Veja figura abaixo.
Selecione a opo DER encoded binary X.509 (.CER). Veja figura abaixo:
Informe o nome do arquivo para gerao do certificado da ISS-Intel no formato DER. Veja figura abaixo:
Informe o nome do arquivo para gerao do trust certificate da ISSIntel no formato DER.
Se tudo deu certo e o certificado for vlido, o Internet Explorer dever apresentar uma tela similar a esta indicando que o certificado foi importado com sucesso.
Aps executar o KeyStore Explorer, ser apresentada a seguinte tela conforme figura abaixo:
A mensagem acima indica que no foi possvel estabelecer um caminho de confiana para o certificado. As informaes do certificado s sero exibidas aps confirmao do usurio pressionando o boto OK.
O painel acima mostra um resumo dos dados de identidade do certificado ISS-Intel. Pressione OK para continuar.
Pressione o boto SIM, para aceitar e confiar no certificado.
Aps a confirmao a tela do Keystore Explorer dever ficar conforme a figura abaixo.
Pressione o boto gravar para gerar o Keystore java. Pressione o boto Ok para confirmar.
Aps pressionar o boto gravar, ser solicitada as senhas do certificado, utilize a mesma senha que foi utilizada para gerao do .PFX na etapa 2 deste tutorial para simplificar o uso. Veja figura abaixo:
Selecione a opo PKCS #12 para incluir o certificado do cliente gerado na etapa 2 deste tutorial.
Apelido do cliente
Aps pressionar o boto OK dever ser apresentado no Keystore Explorer as seguintes informaes conforme figura abaixo:
identidade do cliente
Aps verificar o Keystore acima pressione o boto gravar para salvar o Keystore gerado.
ETAPA 5 TESTANDO O KEYSTORE E O CERTIFICADO PKCS #12 NO WEB SERVICES DA ISSINTEL PARA VALIDAO DO CERTIFICADO.
Abaixo segue classe Java para validar o certificado na ISS-Intel, o endereo de verificao varia de prefeitura para prefeitura.
package com.hcinf.soap; import import import import import import java.io.BufferedReader; java.io.InputStream; java.io.InputStreamReader; java.net.URL; java.net.URLConnection; java.security.Security;
public class ClienteHTTPSVerify { public static void main(String[] args ){ // Habilita os logs do java para verificao de certificado via protoco HTTPs. System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true"); System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true"); System.setProperty("javax.net.debug", "ssl"); final String pathCertificado = "D:\\HCINF\\Certificados-A1\\CLIENTE_JAVA.pfx"; final String keyStore = "D:\\HCINF\\Certificados-A1\\CLIENTE_ISSINTEL.keystore"; String senhaCertificadoPFX String senhaCertificadoKeyStore = "senha"; = "senha";
// Endereo do servidor webservices para verificao do certificado no municpio. String endpoint = "https://boaesperanca-mg.treino-issintel.com.br/webservices/abrasf/certify"; System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); // Indica o certificado tipo KeyStore - PKCS12 - arquivo .PFX do cliente. System.setProperty("javax.net.ssl.keyStoreType", "PKCS12"); System.setProperty("javax.net.ssl.keyStore", pathCertificado); System.setProperty("javax.net.ssl.keyStorePassword", senhaCertificadoPFX ); // Indica Trust KeyStore arquivo .keystore com o certificado ISSIntel e o // certificado do cliente. System.setProperty("javax.net.ssl.trustStoreType", "JKS"); System.setProperty("javax.net.ssl.trustStore", keyStore); System.setProperty("javax.net.ssl.trustStorePassword", senhaCertificadoKeyStore ); try{ // Aceita a negociao com o servidor.
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true"); URL url = new URL(endpoint); // Conecta com o servidor URLConnection conn = url.openConnection(); conn.setAllowUserInteraction(true); conn.setDefaultAllowUserInteraction(true); InputStream inputstream = conn.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputStreamReader); String string = null; // L a resposta do servidor para checar se o certificado passou pelo teste. while ( (string = bufferedreader.readLine() ) != null ) System.out.println("Received "+string); } catch(Throwable err){ err.printStackTrace(); } } } Ao executar a classe Java acima o servidor da ISS-Intel dever retornar o seguinte resultado em SOAP, conforme exemplo abaixo.
%% Cached client session: [Session-1, SSL_RSA_WITH_RC4_128_MD5] main, WRITE: TLSv1 Application Data, length = 219 main, READ: TLSv1 Application Data, length = 2886 Received <validated>true</validated><raw_cert>-----BEGIN CERTIFICATE----Received MIIGNTCCBR2gAwIBAgIIBNkl/vQokZ8wDQYJKoZIhvcNAQEFBQAwTDELMAkGA1UE Received BhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxKDAmBgNVBAMTH1NFUkFTQSBDZXJ0 Received aWZpY2Fkb3JhIERpZ2l0YWwgdjEwHhcNMTAxMTMwMTcxMjQ2WhcNMTExMTMwMTcx Received MjQ2WjCB8TELMAkGA1UEBhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxFDASBgNV Received BAsTCyhFTSBCUkFOQ08pMRgwFgYDVQQLEw8wMDAwMDEwMDE1MTUwMzIxFDASBgNV Received BAsTCyhFTSBCUkFOQ08pMRQwEgYDVQQLEwsoRU0gQlJBTkNPKTEUMBIGA1UECxML Received KEVNIEJSQU5DTykxFDASBgNVBAsTCyhFTSBCUkFOQ08pMRQwEgYDVQQLEwsoRU0g Received QlJBTkNPKTEvMC0GA1UEAxMmU0lTUE9OVE8gU0lTVEVNQVMgSU5URUxJR0VOVEVT Received IExUREEtTUUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMD3w88temL0DkDe Received Dh44pF31qd5q0bwI7HA+2SJCijR/VlcIuIrGipZw6xsFmP01eA9Q0yyFzEOWJhBn Received RJXOKNsGcxQlVoWkB2djdY228KDzBUQgetURDelCe5TlObrZxHWtXUQqCVCH6WNd Received X68YuAL/xdXE1jqYEO1JWFLPic7pAgMBAAGjggL3MIIC8zAOBgNVHQ8BAf8EBAMC Received BeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB8GA1UdIwQYMBaAFLdg Received qFv5sqauAO1069VKyZZoZvVcMIG6BgNVHREEgbIwga+BGkZJTkFOQ0VJUk9AU0lT Received UE9OVE8uQ09NLkJSoD4GBWBMAQMEoDUTMzI4MDQxOTY0MDUzMjMwMTc4MTMwMDAw Received MDAwMDAwMDAwMDBNIDQuNTE5LjcxMFNTUCBNR6AdBgVgTAEDAqAUExJKQUNLU09O Received IFRVTElPIFJFSVOgGQYFYEwBAwOgEBMOMDA0NTU0NTgwMDAxMzWgFwYFYEwBAweg Received DhMMMDAwMDAwMDAwMDAwMFcGA1UdIARQME4wTAYGYEwBAgEGMEIwQAYIKwYBBQUH Received AgEWNGh0dHA6Ly93d3cuY2VydGlmaWNhZG9kaWdpdGFsLmNvbS5ici9yZXBvc2l0 Received b3Jpby9kcGMwgfAGA1UdHwSB6DCB5TBJoEegRYZDaHR0cDovL3d3dy5jZXJ0aWZp Received Y2Fkb2RpZ2l0YWwuY29tLmJyL3JlcG9zaXRvcmlvL2xjci9zZXJhc2FjZHYxLmNy Received bDBDoEGgP4Y9aHR0cDovL2xjci5jZXJ0aWZpY2Fkb3MuY29tLmJyL3JlcG9zaXRv Received cmlvL2xjci9zZXJhc2FjZHYxLmNybDBToFGgT4ZNaHR0cDovL3JlcG9zaXRvcmlv Received LmljcGJyYXNpbC5nb3YuYnIvbGNyL1NlcmFzYS9yZXBvc2l0b3Jpby9sY3Ivc2Vy Received YXNhY2R2MS5jcmwwgZcGCCsGAQUFBwEBBIGKMIGHMEcGCCsGAQUFBzAChjtodHRw Received Oi8vd3d3LmNlcnRpZmljYWRvZGlnaXRhbC5jb20uYnIvY2FkZWlhcy9zZXJhc2Fj Received ZHYxLnA3YjA8BggrBgEFBQcwAYYwaHR0cDovL29jc3AuY2VydGlmaWNhZG9kaWdp Received dGFsLmNvbS5ici9zZXJhc2FjZHYxMA0GCSqGSIb3DQEBBQUAA4IBAQBNof4mJgs4 Received GyrXeehRrVzXTi6FhPyFtnuna5grYYG7SZIQKcQGlXvqNvOdOG2uJ+I2/vapY7jq Received r4eDi5S7j8FGLmkPvMOAlEuK3+5Df+jxAGylI/8K39gKtcq709Xv1HQt8997pCvO Received II1at3C3SciyyjcUvP8x/xo/ux4bV372aYdvxyY7iYVxTA8HnIF6GQTqLzZvoQwW Received xc+d1LP2TJj10R74yM4zSJG9sqBVKDTIKq8j1YkLZRwHYQAzTcpj+WGAMAghJDaY Received s9iWIlKF/nQbYnX9vCxYt7Vq88AIknS1nFI9LdLlezyJUd64po8POpHDC+wxnxl6 Received o57Gl3ws5Gzg Received -----END CERTIFICATE----Received </raw_cert>