database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
ㆍLDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
LDAP Q&A 2323 게시물 읽기
No. 2323
ldap c 라이브러리를 이용 TLS 통신을 하고 싶습니다.
작성자
곽승훈(leich)
작성일
2007-03-14 14:04
조회수
6,909

버전은 openldap 2.0.27 Release 버전입니다. 

TLS통신 즉 암호회된 통신을 하고 싶은데요..

메뉴얼을 찾아 봐도 어떤함수를 써야 할지 모르겠습니다.


ldap_start_tls, ldap_start_tls_s 라는 함수를 써보긴 했지만 not support 라는 에러 메시지를 리턴 하네요. 


아시는 분 도와 주세요

이 글에 대한 댓글이 총 4건 있습니다.

서버는 설정하셨는지요?
먼저 서버를 설정하고 그 다음에 클라이언트를 개발해야 하지 않을까요?
그래서 not support라는 메시지가 나오는 겁니다. 

http://www.openldap.org/pub/ksoper/OpenLDAP_TLS.html

를 참조해 보세요. openldap의 모든 해법은 http://www.openldap.org에 다 있습니다.

그럼 수고하세요.

송상준(sjsong)님이 2007-03-14 22:50에 작성한 댓글입니다.

답변 감사합니다..
하지만 제가 원하는 답은 아닌거 같네요^0^
일단 서버 세팅은 되어 있는 상태 입니다. SLS 는 인증 하는 부분이라 세팅을 하지 않은 부분이지만.
TLS는 되어 있는 상태로 알고 있습니다.
실제로 첨부하신 메뉴얼의 7장 마지막 부분의 -z 옵션을 추가 했을때 두 서버간에 패킷을 잡아 본결과 
암호화가 된 것을 확인할수 있었습니다.
문제는 -z 옵션 부분에 해당되는 C library를 찾는 것입니다.
openldap.org를 열심히 찾아 보았지만. 셀스크립트 따로 C library 따로 찾게 되어 있어 찾기가 쉽지 않네요.
그래서 TLS에 관한 C library를 참고 했지만 앞글에서도 말씀 드렸듯이 NOT support 라는 에러메시지가 뜨더군요 
제가 보기엔 서버에서 세팅이 안된게 아니고 버전이 낮아서 그 library의 형태만 존재하고 실제로 쓰지 못하는 게 아닌가 생각됩니다. 암튼 머리가 좀 아프네요 ㅡㅡ;;

곽승훈(leich)님이 2007-03-15 09:32에 작성한 댓글입니다.

일단 암호화 하는데는 성공 하였습니다.


지난번엔 ldap_set_option 앞에 ldap_start_tls_s를 써서 에러가 났는데


ldap_set_option 뒤에 ldap_start_tls_s를 쓰니까 암호화가 수행되었습니다.


근데 패킷 상태에서 암호화 복호화가 잘 처리되어 수행은 잘되는데. 값도 재대로 나오구요..


문제는 ldap_start_tls_s 의 결과를 ldap_perror 로 찍어보니까 "Connect error" 라는 메시지가 뜨네요.


리턴값도 91번 핵사로 0x8B라고 뜹니다. 


서버는 SLS세팅이 되어 있지 않은 상태입니다만..


제가 영어가 짧긴 하지만 제 나름대로 메뉴얼 해석해본 결과 SLS 와 TLS는 별개라고 ...써 있던거 같은


데..


제가 잘못 해석한걸까요?  


SLS세팅 하지 않고 해결할수 있는 방법 아시는분은 댓글 부탁드립니다.

곽승훈(leich)님이 2007-03-16 11:08에 작성한 댓글입니다.

질문에 대한 답은 아니지만 참고로 말씀을 드립니다. SSL과 TLS는 다른 부분입니다.

오고가는 패킷을 암호화하는 것은 SSL/TLS 두가지 방법이 있습니다.

오렐리 LDAP 서적 26쪽에 나와있는 내용입니다.


ㅇ LDAP over SSL (LDAPS - 636 port) 일반적으로 말하는 SSL입니다.

ㅇ TLS : 389 PORT 로 암호화해서 통신하는 기능으로 RFC 2830 에서 추가된 기능이라고 합니다.

 389 동일한 포트에서 암호화 되지 않은 패킷과 암호화된 패킷을 동시에 전송할 수 있는 기능입니다.


php에는 ssl 을 지원하는 636 port 로 접속할 경우 host 에 ldaps 로 지정하고 포트를 636 지정합니다. start_tls는 명시하지 않습니다. 오히려 명시하면 에러가 나지요.


TLS를 이용하는 경우는 389 PORT 자체적으로 암호화를 지원하기 때문에 389 포트를 이용합니다. PHP 의 경우는 기본적으로 프로토콜 2를 사용하기 때문에 프로토콜 3을 사용하도록 옵션을 세팅하고 호스트에서는 ldaps 가 아닌 ldap으로 지정을 합니다. 반드시 start_tls 옵션을 사용해야지요.


ldaps 와 start_tls 기능은 별개라는 것을 생각하셔야 할 것입니다.


그리고 SSL이나 TLS를 이용하는 경우 접속하려는 호스트에서 서버의 인증서가 있어야지요. 리눅스의 경우 /etc/openldap/cacerts 디렉토리에 ca인증서가 있으며 LDAP서버의 CA인증서를 복사해놓고 authconfig 를 이용하여 ldap 사용을 다시 지정해주어야 하더군요.


php 에서 start_tls 사용하기

http://kr.php.net/ldap_start_tls

문태준(taejun)님이 2007-03-17 10:55에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
2330서적 추천 받습니다. [2]
곽승훈
2007-03-26
6687
2328AD를 통한 웹인증을 하려는데요 [1]
용가리
2007-03-22
6407
2324[질문] 매칭룰이 없어서 두개이상 추가가 되지 않는 경우 [1]
문태준
2007-03-14
6565
2323ldap c 라이브러리를 이용 TLS 통신을 하고 싶습니다. [4]
곽승훈
2007-03-14
6909
2321LDap으로 게시판작성시 적당한 스키마가 무엇이 있나요? [2]
ssukai
2007-03-13
7835
2320LDAP에서 패스워드가 틀린것 같습니다만.. [1]
수하
2007-02-22
7448
2319ldapsearch 에서 데이타를 찾을 수가 없습니다만; [2]
손형석
2007-02-20
6884
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다