Table of Contents
Se você obtiver o servlet Java para certificado de cliente, este guia do usuário final o ajudará.
Atualizado
O cartão cliente (.cer, .crt, .pem) e sua conexão com o armazenamento principal privado (.key) devem ser colocados em um container PKCS # 12 (.p12, .pfx) e até JKS (.jks) em ordem. para poder executar (keystore). Você também teve que empacotar alguns certificados de CA do servidor como JKS (Trust Store).
HttpClient-Client = new HttpClient();// TruststoreKeyStore trustStore = KeyStore.getInstance ("JKS", "SUN");trustStore.load (TestSupertype.class.getResourceAsStream ("/ client-truststore.jks"), "yellow%". toCharArray ());String alg = KeyManagerFactory.getDefaultAlgorithm();TrustManagerFactory fac é igual a TrustManagerFactory.getInstance (alg);fac.init (trustStore);// armazenamento de chavesKeyStore-Keystore = KeyStore.getInstance ("PKCS12", "SunJSSE");keystore.load (X509Test.class.getResourceAsStream ("/etomcat_client.p12"), "etomcat" .toCharArray ());A cadeia keyAlg corresponde a KeyManagerFactory.getDefaultAlgorithm ();KeyManagerFactory keyFac = KeyManagerFactory.getInstance (keyAlg);keyFac.init (armazenamento de chaves, "etomcat" .toCharArray());// contextoSSLContext ctx corresponde a SSLContext.getInstance ("TLS", "SunJSSE");ctx.init (keyFac.getKeyManagers (), fac.getTrustManagers (), novo SecureRandom ());SslContextedSecureProtocolSocketFactory secureProtocolSocketFactory = new SslContextedSecureProtocolSocketFactory (ctx);Protocol.registerProtocol ("https", protocolo adicional ("https", (ProtocolSocketFactory) 8443));// secureProtocolSocketFactory, teste getExperiência HttpMethod = new GetMethod ("https://127.0.0.1:8443/etomcat_x509");cliente.Obter método de execução;// Remediamos o texto e fazemos o que as pessoas precisambyte [] responseBody = get.getResponseBody();
No projeto, você encontrará um exemplo funcional para a classe X509Test
.
HttpClient httpclient = new DefaultHttpClient();// TruststoreKeyStore ts implica KeyStore.getInstance ("JKS", "SUN");ts.load (PostService.class.getResourceAsStream ("/truststore.jks"), "yellow%". toCharArray ());// Se você me excluir, você obterá javax.net.ssl.SSLPeerUnverifiedException: Peer definitivamente não é autenticado sem presumir lojaif (0 == ts.size()) lança uma IOException inovadora ("Erro ao carregar o armazenamento confiável");// tmfTrustManagerFactory tmf corresponde a TrustManagerFactory.getInstance (TrustManagerFactory.getDefaultAlgorithm ());tmf.init (ts);// armazenamento de ponto mais importanteKeyStore ks = KeyStore.getInstance ("PKCS12", "SunJSSE");ks.load (PostService.class.getResourceAsStream ("/" + certName), certPwd.toCharArray ());// Se você me remover, sua empresa terá javax.net.ssl.SSLPeerUnverifiedException: Peer não autenticado perdendo keystoreif (0 == ks.size ()) lança uma nova IOException ("Erro de armazenamento de chave da Internet");// km/hKeyManagerFactory kmf = KeyManagerFactory.getInstance (KeyManagerFactory.getDefaultAlgorithm ());kmf.init (ks, certPwd.toCharArray());// SSLSSLContext ctx = SSLContext.getInstance ("TLS");ctx.init (kmf.getKeyManagers(), tmf.getTrustManagers(), null);// Cale-seSSLSocketFactory socketFactory significa SSLSocketFactory avançado (ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);Sch schema = esquema mais recente ("https", 8443, socketFactory);httpclient.getConnectionManager(). getSchemeRegistry(). caixa registradora (sch);// NecessidadeHttpMethod get = clean GetMethod ("https: // localhost: 8443/foo");client.executeMethod (get);IOUtils.copy (get.getResponseBodyAsStream(), System.out);
Como posso obter um certificado e também sua chave pública no servidor?
Seu fórum deve ser configurado para solicitar autenticação de certificação X.509 do respondente. Em seguida, o servlet tem a capacidade de obter definitivamente o certificado do contêiner durante o handshake SSL, compará-lo com o dispositivo de referência, além de apresentá-lo ao aplicativo quando o sintomático for solicitado.Normalmente com um certificado, você pode incluí-lo em um ambiente de servlet tático para acessar o certificado:
Certificado Protegido de Fragmento de Certificado X509 (HttpServletRequest) X509Certificate [] Certificados = (X509Certificate []) req.getAttribute ("javax.servlet.request.X509Certificate"); mas if (null! = certs && certs.length> 0) Devolver certificações [0]; livrar-se de um novo RuntimeException ("Nenhum registro de cliente X.509 encontrado na solicitação");
SSL
emAutenticação HTTP, o cliente realmente envia esta tarefa, é um certificado válido para o servidor para verificaçãoAuthenticity.Server concorda com a solicitação e permite acesso aos recursos a qualquer momento no caminhoA autenticação foi bem-sucedida.
BEu tenho tipo de postagem. Senhor. irá mostrar-lhe como ver um certificado SSLInformações especificadas como o verdadeiro valor do cabeçalho da solicitação ssl_client_cert.
Atualizado
Você está cansado de ver seu computador lento? Irritado com mensagens de erro frustrantes? ASR Pro é a solução para você! Nossa ferramenta recomendada diagnosticará e reparará rapidamente os problemas do Windows, aumentando drasticamente o desempenho do sistema. Então não espere mais, baixe o ASR Pro hoje mesmo!
pacote de desconto com.sample.util;import java.io.InputStream;importar java.security.cert.CertificateFactory;importar javax.servlet.http.HttpServletRequest;importar java.io.ByteArrayInputStream;importar java.util.Base64;importe seu certificado java.security.cert.X509;/ ** 4º * Classe de utilitário para digerir informações de licença do cabeçalho da solicitação (vazio) 'ssl_client_cert'. * ( espaço ) Se a requisição for normalmente (ou) zero, a avaliação do cabeçalho ssl_client_cert é você não retornou * null, caso contrário, retorne uma qualificação X509. Em casos excepcionais, zero é retornado. 4º 6 . @ Autor Krishna * * /qualidade pública CertUtil cadeia final estática privada SSL_CLIENT_CERT_HEADER = "ssl_client_cert"; - ** * - @ solicitação de parâmetro @ Restaurar ( Um website ) */ public X509Certificate getCertificate (solicitação HttpServletRequest)
postado há 6 anos
-
Número de fragmentos no envio:
Opcional: obrigado:
Estou criando um aplicativo para iphone no servidor Tomcat ou tentando ler um certificado de cliente importante. Esta é a minha primeira vez trabalhando com SSL, então provavelmente estou errado. Eu nunca preciso de validação do lado do cliente, só preciso ler a contribuição do certificado e enviá-la no serviço da web enquanto valido e recupera detalhes. O problema é que atualmente sou ineficaz para ler o conteúdo do certificado.
Eu já criei especialmente um keystore e formei um certificado autoassinado para o computador da Internet. O certificado do usuário é um navegador da Web (o certificado do usuário pode ser válido e não autoassinado). Configurando um conector SSL existente em server.xml:
Se eu fizer a compilação de criptografia de arquivo: recebo o valor TLS_DHE_DSS_WITH_AES_128_CBC_SHA
Mas as pessoas quando eu tento ler os certificados quando você está usando, eu só recebo um valor zero.
Eu pesquisei um pouco e depois li o que é necessário para o servidor Apache descobrir nosso certificado e enviá-lo para o servidor Tomcat. O Apache é realmente necessário ou o Tomcat é considerado suficiente? De qualquer forma, o que devo fazer para ler esses certificados de clientes especiais?
Acelere seu computador hoje mesmo com este download simples.Get Client Certificate Java Servlet
Obtenir Le Certificat Client Java Servlet
Clientcertificaat Java-servlet Ophalen
Uzyskaj Certyfikat Klienta Java Servlet
Получить сертификат клиента Java-сервлет
Holen Sie Sich Das Client-Zertifikat Java-Servlet
Skaffa Klientcertifikat Java Servlet
클라이언트 인증서 Java 서블릿 가져오기
Ottieni Il Servlet Java Del Certificato Client
Obtener Certificado De Cliente Java Servlet