뭘 물어 보았는지 기억은 나지 않지만 일단 설명을 시작하겠습니다. iPlanet Directory에서 SSL을 통한 프로그램을 소개 하겠다. 먼저 iplanet Directory 서버는
먼저 디렉토리서버에 서버에 인증서를 설치한후에 SSL 통신을 할 수 있는데 SSL포트는 636을 사용한다. 저번에 질문하신것 중에 포트를 기술하지 않은 것 같은데 SSL 기본 포트가 636이라서 그런것인지 모르겠네요... 먼저 설치후에 클라이언트를 세가지종류를 선택할 수 있다. 사용자의 인증서없이 서버인증서를 가지고 SSL통신을 방법, 클라이언트 인증서는 요구하지만 요구만 하는 방법, 클라이언트의 인증서를 진짜 확인하여 SSL통신하는 방법 세가지를 방식을 사용한다.
저는 인증서 발급을 직접하였다. 사용서버는 iPlanet의 CMS서버를 이용하여 사용자 및 서버용 인증서를 사용하여 SSL 통신 설정을 하였다.
일단 JAVA예저를 하나 보여 드리겠다. 이 소스에서 SECURITY_CREDENTIALS와 SECURITY_AUTHENTICATION의 유심하게 보시기 바랍니다. 나머지 부분은 일반연결과 같다.
try
{
Hashtable environment = new Hashtable( );
environment.put( Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
environment.put( Context.SECURITY_PRINCIPAL, "cn=directory manager");
environment.put( Context.SECURITY_CREDENTIALS, "dirmanager");
environment.put( Context.SECURITY_AUTHENTICATION, "simple");
/* The following environment variables set up the SSL connection. */
environment.put( Context.PROVIDER_URL, "ldap://172.29.160.5:636");
environment.put( Context.SECURITY_PROTOCOL, "ssl");
environment.put( "java.naming.ldap.factory.socket",
"com.sun.jndi.ldap.LdapCtxFactory");
/* Get a handle to an Initial DirContext */
DirContext context = new InitialDirContext( environment );
위의 예제를 보면 잘 알수 있을 것이다. 요즘에 새삼느끼지만 시간이 지난 후에 예전에 공부했던 내용을 보면 이런자료가 여기 있었군아 하는것을 느낄수 있더라구요.
이 소스가 도움이 되었으면 하고
www.kwangsung.or.kr/ocp의 LDAP게시판에서 더욱 자세히 연재 순서대로 이야기를
계속할 것이니 기다려 주시기 바랍니다.
|