[우]님이 남기신 글:
>[산이]님이 남기신 글:
>
>>
>>[우]님이 남기신 글:
>>
>>>-----------------------------------------
>>>답변자가 기본적으로 참고할 내용입니다.
>>>- 배포판(옵션) : 레드헷 8
>>>- 커널버전(옵션)
:
>>>- 데몬버전(예:apache
1.3.27) :
>>>- 데몬설치유형(RPM/컴파일/기타)
:
>>>-----------------------------------------
>>>apm 을 깔았는데 제가 쇼핑몰을 관리하는관계로
>>>ssl 을 추가하고 싶습니다.
>>>쉽게 할수 있는 자료는 없나요?
>>>아직 초보라 여기 저기 읽어봐도 감이 안오네요
>>>아파치는 2.X입니다.
>>
>>========================================
>>
>>아파이 2.0 이라면,
>>
>>--enable-ssl
>>
>>옵션을 추가하면 됩니다.
>>
>>그런데 개인적인 의견이지만 apache 2.0 에서는
>>ssl 보다는 apache 1.3.x 버전을 사용해 보세요.
>>
>>아래의 내용은 2.0 의 내용입니다.
>>
>>만약 현재 아파치가 이미 설치되어 있다면
>>DSO 모듈로 컴파일해야 합니다.
>>
>>예)
>>
>># pwd
>>/usr/local/src/httpd-2.0.xx
>>
>># ./configure --prefix=/usr/local/apache2 \ <-- 현재 설치된 경로와
동일하게
>> --enable-ssl \
>> --enable-mods-shared=ssl \
>>
>># make
>>#
>># cd modules/ssl
>># ls *.so
>>mod_ssl.so
>>#
>># /usr/local/apache2/bin/apxs -a -i -n ssl mod_ssl.so
>>
>>그리고 나서
>>httpd.conf 파일을 열어서
>>
>>## 아래 한줄 확인 없다면 추가
>>##
>>LoadModule ssl_module modules/mod_ssl.so
>>
>>## 다음 3줄 추가
>>##
>><IfModule mod_ssl.c>
>> Include conf/ssl.conf
>></IfModule>
>>
>>그리고 당연히 /usr/local/apach2/conf/ssl.conf 파일이
있어야
>>겠지요.
>>(이미 설치되어 있을 겁니다.)
>>
>>만약 실패하면 처음부터 다시 아파치를 컴파일해야합니다.
>>(보안에 관련된 민감한 부분이라서)
>>
>>나머지 작업은 ssl 설정 튜닝을 따로 해줘야 합니다.
>>
>>좀 복잡하고 방대해서 이곳에 언급하기가
어렵습니다.
>>
>>>openssl 과 modssl의 차이가 뭔가요?
>>
>>전자는 라이브러리이고
후자는 이 라이브러리를 이용한 아파치 확장모듈입니다.
>
>========================================
>산이님 귀찮으실텐데도
불구 하고 답변 감사 합니다.
>제가 산이님 말씀대로 설치후
>스타트 했는데 이런 메세지가 나오네요
># ./apachectl startssl
>Syntax error on line 233 of /usr/local/apache/conf/httpd.conf:
>Cannot load /usr/local/apache/modules/mod_ssl.so into server:
/usr/local/apache/modules/mod_ssl.so: undefined symbol: X509_free
>무슨 의미 인지요?
>그런데 apachectl start 후에
>하면 실행이 된느군요
>근데 여기서 그대로 apachectl startssl 이라고하면
>httpd (pid 7728) already running
>이라는 메세지가 뜨는군요 두개 동시에 안뜨고요
>두개 동시에 뜨게 할려면 어째야 되죠?
========================================
apache 2.0.x 에서는 mod_ssl 아직 불안정한것 같네요
검색해보니 상당수가 이와 똑같은 버그(?)가 있는것 같네요.
아직은 아파치 1.3.x 가 그 주류이므로 상용으로 사용할거라면
1.3.x 버전을 권장합니다.
그리고,
위의 에러메시는
http://www.openssl.org/docs/crypto/X509_new.html
에 보면 알겠지만 'X509_free'는 openssl 에서 사용되는
X509_free() 라는 함수를 의미합니다.
정상적으로라면
이 함수가 DSO 모듈인 mod_ssl.so 에 링크로
포함되어야 하는데 그 링크를 찾을 수 없다는 의미입니다.
DSO 인 libphp4.so 에서 libmysqlclient 의 그 예를 들자면
# ldd /usr/local/apache/libexec/libphp4.so
...
libmysqlclient.so.10 => /usr/local/mysql/lib/mysql/libmysqlclient.so.10
(0x401f7000)
...
이와같이 libphp4.so DSO 모듈은 shared object 인
libmysqlclient.so.10 를 포함하여 사용해야하는데
그 링크(위치)가
/usr/local/mysql/lib/mysql/libmysqlclient.so.10
에 있다는 의미입니다.
위의 mod_ssl.so 도 이와 비슷한 방법으로 이해하면 됩니다.
즉
openssl 의 X509_free() 함수는 libcrypto.so 또는 libssl.so
에 포함되어야 하는데 이 shared object 가 시스템에 찾을 수
없거나
라이브러리 경로에 없다는 의미입니다.
시스템에 libcrypto.so 또는 libssl.so 가 있는지 확인해보세요.
없다면 openssl 을 다시 컴파일해야 합니다.
/usr/lib
또는
/usr/local/ssl/lib
에 있을 겁니다.
전자는 아파치 컴파일시 --with-ssl=/usr 으로 해야하고
후자인 경우는 --with-ssl=/usr/local/ssl 옵션을 추가해줘야합니다.
(자동으로 인식하나 가능한 직접 경로를 입력해 주는것이
좋습니다.)
openssl 을 컴파일할때, 적어도
# pwd
/usr/local/src/openssl-xxx
#
# ./config --prefis=/usr/local/ssl threads shared
이와 같이 shared 옵션을 주고 컴파일해야 합니다.
이와 같은 방법으로도 해결하지 못하면
아파치부터 다시컴파일하되
mod_ssl 모듈을 DSO 모듈로 컴파일하지
말고 아파치 core 에 정적으로 붙이는 방법을 택해야 합니다.
아파치 mod_ssl 설치, 설정은 상당히 손이 많이 가는 작업입니다.
또한 그 인증에 대한 비용지불도 만만치 않을 겁니다.
아직 초보라면,
검색엔진에서 mod_ssl 설치, 설정에 관한 내용을 검색하여
공부하신후
시도해 보는 것이 좋겠네요.
|