Open SSL 설치하기에 대한 질문 입니다.
글쓴이: hyper9 / 작성시간: 토, 2010/01/09 - 8:44오전
OpenSSL을 설치해보고 있습니다.
Sorce RPM을 구해서,
./config
make
make test
make install
이렇게 compile을 했는데요,
Error없이 잘 되는 것 같긴해요.
그런데, 실제로 제가 compile한 OpenSSL source가 제대로 사용되는 건지를
잘 모르겠네요 ㅜㅜ
실제로 Application에서 호출하고 있는 OpenSSL function중에 printf()문을
하나 추가해봤는데요..
그 message가 제대로 출력이되지 않는걸보면, compile & installation은 잘되었지만,
Application은 아직 무슨이유에서인지 새로 설치된 OpenSSL을 사용하지 못하고
있는 것 같은데요,,
경로문제 때문일까요? 아님 Makefile을 잘못만들어서 일까요?
조언을 주시면 감사하겠습니다.
Forums:
Application을 컴파일할
Application을 컴파일할 때 OpenSSL라이브러리의 위치를 어디로 지정하였는가를 확인해보셔야 할 것 같습니다.
SourceRPM파일을 받으셨다면 rpmbuild를 이용해서 rpm을 만든다음에 설치하는 것이 기본 방법이지만 내용을 보면 직접 설치하신 것 같습니다. 이 경우 시스템에 새로 설치된 OpenSSL라이브러리가 인식이 안되고 Application을 컴파일할 때 rpm으로 설치된(이미 설치되어 있던) OpenSSL라이브러리가 선택되었을 가능성이 큽니다.
Makefile을 살펴보니까요,,
-lpthread -lssl -lcryptor -lnsl
과 같은 flag들이 있는데, 이걸 보면 어디에 실제 library가 위치하고 있는지를
알 수 있는 걸까요?
잘 이해를 못해서 다시 질문드립니다.
감사합니다. ~
예,,,저도 그런 것 같은데요..
어떻게 하면, 새로 compile한 library를 쓰게할 수 있을지,
그걸 모르겠습니다.
혹시 조언 주신다면, 감사하겠습니다. ^^
음...
make install 시에..
libssl 및 libcrypto 가 어느 경로에 설치되었는지 확인해 보시고..
ldd 명령으로 테스트 프로그램이 어느 경로의 library 를 참조하는지 확인해 보세요.
응용 프로그램이 실행될 때, library path 상에서 library 를 찾기 때문에...
다른 경로에 우선순위가 늦은 경우에는 다른 버전의 library 가 참조될 수 있습니다.
우선은 라이브러리가 설치된 경로를 확인하고, LD_LIBRARY_PATH 를 변경해서...
해당 프로그램이 그 경로의 라이브러리를 참조하게 해서 테스트 한 후..
system default library dir (/lib, /lib64 등) 로 옮겨주는게 나을 것 같네요.
응용프로그램이 라이브러리를 참조하는지는 strace 로 확인할 수도 있습니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
감사합니다..
이런 좋은 정보를 모르고 있었네요 ^^
많이 도움이 될 것 같습니다. ~
SSL_CTX_use_certificate를 보고 있습니다.
지금 제가 실행하는 Application이 SSL관련 부분에서 문제를 일으킵니다.
정확히는 딱 정지해버리는데요.
그것이 SSL_CTX_use_certificate()라는 function을 부르면서 정지하는 문제입니다.
그래서 조금 무식해보이기는 하지만 ^^ SSL code를 들여다 보기로 했습니다.
그래서 source RPM도 설치해보고, source 를 compile해봤는데,
SSL_CTX_use_certificate()라는 function을 가지고 있는 library는 libssl.a
인 것 같아보이네요.
그래서 일단은 시험삼아 ssl_rsa.c에 있는 SSL_CTX_use_certificate()라는 function에
printf("--DEBUGGING -- TEST -- \n")라는 한 문장을 추가해서
다시 compile을 해봤습니다..
그러니까,,Application을 실행할 때, "--DEBUGGING -- TEST --"까지를 찍고
다시 정지하는 현상이 보여서,,일단은 제대로 ssl source에 접근을 했나보다
생각했는데요 ...
그러고나서,,한동안 바쁜일에 이 문제를 제대로 못 보다가 어제 다시 시작을 했습니다.
그동안의 기억도 살릴겸 ^^
"printf("--DEBUGGING -- TEST -- \n")"라는 문장대신에
"printf("--DEBUGGING -- TEST #1 \n")"라는 문장으로 대체를 하고
다시 compile하고 Application을 실행했는데
계속 "--DEBUGGING -- TEST -- "이 찍히네요..
그래서 혹시나 하고 libssl.a를 지우고 다시 compile했는데도
계속 예전 message만 찍히는 것 같아요.
어떻게 조사를 해야 문제를 찾아낼 수가 있을까요?
조언 부탁 드립니다...
음...
위에서 이미 ldd 와 LD_LIBRARY_PATH 에 대해서 언급해드렸습니다.
해당 프로그램이 어느 경로의 library 를 참조하는지 확인한 후에..
해당 경로에 수정된 library 를 복사해서 덮어 씌우거나..
LD_LIBRARY_PATH 를 이용해서 수정한 라이브러리가 있는 경로가 우선 참조되도록 변경한 후에..
다시 테스트 해보세요.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
댓글 달기