문제

인증서를 사용하여 일반 체계를 이해할 수 없습니다. 예를 들어, 일부 웹 사이트에 계정이 있습니다. 나는 가지고있다 name 그리고 password. 이 사이트에 로그인하려면 어떻게해야합니까? - 열어야합니다 _https://website:443/login 그리고 필드를 작성하고, 모든 것이 정상이라면, 나는 입학을 얻을 것이다.

이제 이러한 단계를 프로그래밍 방식으로 Java + httpclient (Apache)를 수행하고 싶습니다. 나는 썼다 :

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));

서버의 인증서로 TrustStore를 만들어야합니다.

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

'Myca'는 'installcert.java' - Sun의 제품으로 만들어졌습니다.

그러나 브라우저 (FFOX 또는 OPERA) 가져 오기 서버 인증서와 같이이 모든 단계를 프로그래밍 방식으로 수행하고 싶습니다. 사용자는 추가 응용 프로그램 세트가 아닌 내 응용 프로그램 만 사용하기를 원합니다.

어떻게 수행 할 수 있습니까?

그리고 지금, 주요 문제 : 왜 서버가 사용자의 인증서를 요구하지 않습니까? 그리고 내 자신의 인증서를 사용하여 인증 할 수있는 방법은 무엇입니까? (사용자의 인증서가있는 경우 서버에 로그인하려면 '이름' '' '' ''이 필요하지 않습니까?)

도움이 되었습니까?

해결책

서버가 사용자의 인증서를 요구하지 않는 이유는 무엇입니까?

서버에는 사용자 인증서가 필요하지 않습니다. 대부분의 사용자는 사용자 인증서를 가지고 있지 않기 때문입니다. 그리고 그들이 그렇게하더라도 그러한 인증서는 얻기가 어렵거나 비싸기 때문에 많은 사용자가 얻을 수 없습니다.

따라서 클라이언트 인증서가 필요한 모든 서버는 사용자 수를 1000의 계수로 줄일 수 있습니다. 대부분의 서버 소유자는이를 원하지 않습니다.

사용자의 인증서가있는 경우 서버에 로그인하기 위해 '이름' '' '' '' '' ''색'이 필요하지 않습니까?

요구 사항에 따라 다릅니다. 인증서 + 사용자 이름/비밀번호를 요구하는 것은 두 가지 요소 인증으로 간주되며, 이는 더 강력한 보호 형태 인 한 가지 요소가 필요합니다. 그것은 일종의 생체 인식 식별을 요구함으로써 더욱 강해질 것입니다.

어떻게 수행 할 수 있습니까?

정확히 무엇을 수행합니까? 당신은 "프로그래밍 방식으로"일을하는 것에 대해 이야기하고 있지만 이미 코드를 제시합니다 ...?

그리고 내 자신의 인증서를 사용하여 인증 할 수있는 방법은 무엇입니까?

서버 구성에서 수행해야합니다. Trustet Root Certificates가 포함 된 신뢰 스토어를 설정해야합니다. + SSL 구성에서 클라이언트 인증을 요구합니다. 예를 들어 검색 여기 ClientAuth의 경우.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top