Pergunta

Não consigo entender o esquema geral usando certificados. Por exemplo: eu tenho conta em algum site. Eu tenho name e password. O que devo fazer para fazer login neste site? - eu deveria abrir _https://website:443/login e preencha os campos, e se estiver tudo bem, vou obter a admissão.

Agora, eu gostaria de executar essas etapas programaticamente usin java + httpclient (Apache). Eu escrevi:

client = new DefaultHttpClient();

client.getParams().setParameter(ClientPNames.COOKIE_POLICY, 
                                CookiePolicy.BEST_MATCH);
client.setCookieStore(new BasicCookieStore());
client.getCredentialsProvider()
      .setCredentials(new AuthScope(ADDRESS, new Integer(PORT)),
                      new UsernamePasswordCredentials(USERNAME, USERPWD));

E devo criar a Truststore com o certificado do servidor:

System.setProperty("javax.net.ssl.trustStore", "./KeyStore/myca");

onde 'myca' foram feitos com 'installCert.java' - o produto da Sun.

Mas gostaria de executar todas essas etapas programaticamente, como o navegador (FFOX ou Opera) de importação do Certificado do Servidor ... o usuário só deseja usar apenas meu aplicativo, não um conjunto de aplicativos adicionais.

Como posso executá -lo?

E agora, o principal problema: por que os servidores não exigem certificado do usuário? E como posso usar meu próprio certificado para autenticar? (Se eu tiver o certificado do usuário, não precisarei de 'name''password 'para fazer login no servidor?)

Foi útil?

Solução

Por que os servidores não exigem certificado do usuário?

Os servidores não exigem certificados de usuário, porque a maioria dos usuários não possui um, não é o que é e como obter um. E mesmo se o fizerem, esse certificado é difícil ou caro de obter, muitos usuários não receberão um.

Portanto, qualquer servidor que exija um certificado de cliente reduziria o número de usuários provavelmente em um fator de 1000. A maioria dos proprietários de servidores não deseja isso.

Se eu tiver o certificado do usuário, não precisarei de 'name''password 'para fazer login no servidor?

Depende de seus requisitos. Exigir um certificado + nome de usuário/senha seria considerado uma autenticação de dois fatores, que é uma forma mais forte de proteção e, em seguida, exigindo apenas um fator. Ficaria ainda mais forte solicitando algum tipo de identificação biométrica.

Como posso executá -lo?

Executar exatamente o quê? Você está falando sobre fazer as coisas "programaticamente", mas você já apresenta código ...?

E como posso usar meu próprio certificado para autenticar?

Isso deve ser feito na configuração do seu servidor. Você precisa configurar um armazenamento de confiança que contém os certificados raiz do trustet + exige autenticaticação do cliente na configuração SSL. por exemplo, pesquisa aqui para cliente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top