ldd 명령에 대해 감사드립니다. 그것은 내 문제를 해결했습니다 :-D
분명히 tls_drv.so는 libssl.so.0.9.8과 libcrypto.so.0.9.8을 찾고 ejabberd는 0.9.7을 포함합니다. libssl.so.0.9.8e와 libcrypto.so.0.9.8e를 설치했는데, tls_drv.so는 찾을 수 없습니다 ('e'때문에?).
내가 한 것은 0.9.8e라는 심볼릭 링크를 만드는 것이 었습니다. 그리고 voilà! 그것은 효과가있다!
는 여기에 좀 더 정보입니다 :
- 를 CentOS 5.5 32 비트
- 내가 www.process-one.net에서 직접 바이너리 설치 프로그램을 다운로드
- 2.1.8 ejabberd (www.ejabberd.im)
- 설치 프로그램에서 필요로하는 호스트 이름과 관리자 사용자를 제외하고 나는 여전히 기본 구성을 가지고 있습니다.
- jabber 클라이언트의 연결이 TLS없이 제대로 작동하는 것 같습니다. 문제는 사용 가능한 경우 연결을 암호화하도록 클라이언트를 구성한 경우입니다.
다음은 수정하기 전에 불평 얼랑 로그입니다 :
=CRASH REPORT==== 12-Sep-2011::22:48:56 ===
crasher:
pid: <0.372.0>
registered_name: []
exception exit: {{case_clause,{error,{open_error,-10}}},
[{tls,tcp_to_tls,2},
{ejabberd_socket,starttls,3},
{ejabberd_c2s,wait_for_feature_request,2},
{p1_fsm,handle_msg,10},
{proc_lib,init_p,5}]}
in function p1_fsm:terminate/7
initial call: gen:init_it(p1_fsm,<0.258.0>,<0.258.0>,ejabberd_c2s,
[{ejabberd_socket,
{socket_state,gen_tcp,#Port<0.406>,
<0.371.0>}},
[inet,
{certfile,
"/opt/ejabberd-2.1.8/conf/server.pem"},
starttls,
{access,c2s},
{shaper,c2s_shaper},
{max_stanza_size,65536},
{ip,{0,0,0,0}}]],
[])
ancestors: [ejabberd_c2s_sup,ejabberd_sup,<0.36.0>]
messages: []
links: [<0.258.0>]
dictionary: [{'$internal_queue_len',0}]
trap_exit: false
status: running
heap_size: 987
stack_size: 23
reductions: 3258
neighbours:
=SUPERVISOR REPORT==== 12-Sep-2011::22:48:56 ===
Supervisor: {local,ejabberd_c2s_sup}
Context: child_terminated
Reason: {{case_clause,{error,{open_error,-10}}},
[{tls,tcp_to_tls,2},
{ejabberd_socket,starttls,3},
{ejabberd_c2s,wait_for_feature_request,2},
{p1_fsm,handle_msg,10},
{proc_lib,init_p,5}]}
Offender: [{pid,<0.372.0>},
{name,undefined},
{mfa,
{ejabberd_c2s,start_link,
[{ejabberd_socket,
{socket_state,gen_tcp,#Port<0.406>,<0.371.0>}},
[inet,
{certfile,"/opt/ejabberd-2.1.8/conf/server.pem"},
starttls,
{access,c2s},
{shaper,c2s_shaper},
{max_stanza_size,65536},
{ip,{0,0,0,0}}]]}},
{restart_type,temporary},
{shutdown,brutal_kill},
{child_type,worker}]
는 여기를 해결하는 과정이다 : 나는 ejabberd를 다시 시작하고, 그게이었다
[email protected] [/opt/ejabberd-2.1.8]# find . -name tls_drv.so
./lib/ejabberd-2.1.8/priv/linux-x86/lib/tls_drv.so
[email protected] [/opt/ejabberd-2.1.8]# cd lib/ejabberd-2.1.8/priv/linux-x86/lib/
[email protected] [/opt/ejabberd-2.1.8/lib/ejabberd-2.1.8/priv/linux-x86/lib]# ldd tls_drv.so
linux-gate.so.1 => (0x00f9c000)
libssl.so.0.9.8 => not found
libcrypto.so.0.9.8 => not found
libc.so.6 => /lib/libc.so.6 (0x00d9c000)
/lib/ld-linux.so.2 (0x00943000)
[email protected] [/lib]# cd /lib
[email protected] [/lib]# ll libcrypto.so.* libssl.so.*
-rwxr-xr-x 1 root root 1296964 Mar 6 2011 libcrypto.so.0.9.8e*
lrwxrwxrwx 1 root root 14 Nov 24 2009 libcrypto.so.4 -> libcrypto.so.6*
lrwxrwxrwx 1 root root 19 Apr 26 11:06 libcrypto.so.6 -> libcrypto.so.0.9.8e*
-rwxr-xr-x 1 root root 293044 Mar 6 2011 libssl.so.0.9.8e*
lrwxrwxrwx 1 root root 11 Nov 24 2009 libssl.so.4 -> libssl.so.6*
lrwxrwxrwx 1 root root 16 Apr 26 11:06 libssl.so.6 -> libssl.so.0.9.8e*
[email protected] [/lib]# ln -s libcrypto.so.0.9.8e libcrypto.so.0.9.8
[email protected] [/lib]# ln -s libssl.so.0.9.8e libssl.so.0.9.8
[email protected] [/lib]# cd -
/opt/ejabberd-2.1.8/lib/ejabberd-2.1.8/priv/linux-x86/lib
[email protected] [/opt/ejabberd-2.1.8/lib/ejabberd-2.1.8/priv/linux-x86/lib]# ldd tls_drv.so
./tls_drv.so: /lib/libcrypto.so.0.9.8: no version information available (required by ./tls_drv.so)
./tls_drv.so: /lib/libssl.so.0.9.8: no version information available (required by ./tls_drv.so)
linux-gate.so.1 => (0x0088c000)
libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0x00110000)
libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0x00ebf000)
libc.so.6 => /lib/libc.so.6 (0x00252000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x008ef000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00ae0000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x0077c000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00527000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00158000)
libdl.so.2 => /lib/libdl.so.2 (0x0016c000)
libz.so.1 => /usr/lib/libz.so.1 (0x00a67000)
/lib/ld-linux.so.2 (0x00943000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00df3000)
libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x00e2a000)
libselinux.so.1 => /lib/libselinux.so.1 (0x008cc000)
libsepol.so.1 => /lib/libsepol.so.1 (0x00171000)
[email protected] [/opt/ejabberd-2.1.8/lib/ejabberd-2.1.8/priv/linux-x86/lib]#
!
인터넷 검색으로 인해 동일한 문제가있는 많은 사람들을 찾을 수 있었지만 한 가지 해결책은 아니기 때문에 다른 사람에게 도움이되기를 바랍니다.
감사합니다.
maganap
바이너리가 OpenSSL 지원으로 컴파일되지 않은 것 같습니다. 어디에서 가져 왔습니까? – ismail
안녕하세요, 바이너리는 ejabberd 설치 프로그램과 함께 제공됩니다. 그것은 그들의 패키지에있었습니다.나는 또한 여기에 설명 된대로 드라이버를 수동으로로드하려고 시도 : http://www.ejabberd.im/node/4094#comment-56654,하지만 난 여기에 제안 된 것을 시도 할 때마다 -10 오류가 발생했습니다 .... 그래서 라이브러리를 추측합니다. 정말 여기에 책임이 있습니다. – Bostjan
ejabberd 설치 프로그램에 대한 의미가 있다면, 나는 그들의 사이트에서 얻었습니다. – Bostjan