jabberd2 서버에 대해 작동 중인 TLS 인증서

jabberd2 서버에 대해 작동 중인 TLS 인증서

보안 클라이언트 연결로 jabberd2 서버(V 2.40)를 실행하고 싶습니다.
설명서의 지침을 따랐고 서버가 실행 중입니다.
https://github.com/jabberd2/jabberd2/wiki/InstallGuide-OpenSSL구성

하지만 보안 클라이언트 연결이 없는 것 같습니다.
인증서 요청에 대한 힌트를 따랐을 때 피어 인증서가 없습니다.
Jabber 서버에서 SSL 인증서 체인 가져오기

openssl s_client -connect my.jabber.server.net:5222 </dev/null

CONNECTED(00000003)
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 648 bytes and written 117 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE

실제 구성은

  <local>
         <pemfile>/etc/jabberd2/jabber.pem</pemfile>
         <verify-mode>7</verify-mode>
         <require-starttls>1</require-starttls>
         <ciphers>EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH</ciphers>
    <id register-enable='mu'>domainname.de</id>
  </local>

c2s.xml의 힌트에 따라 나는 이것을 다음과 같이 변경했습니다.

  <local>
    <id realm='domainname.de'
        pemfile='/etc/jabberd2/jabber.pem'
        ciphers='EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'
        verify-mode='7'
        require-starttls='mu'
        instructions='Geben Sie einen gueltigen Benutzernamen mit Passwort an um einzuloggen!'
    >domainname.de</id>
    <id password-change='mu' />
  </local>

그런 다음 openssl 테스트는 성공적입니다.

---
No client certificate CA names sent
---
SSL handshake has read 1700 bytes and written 138 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID:
    Session-ID-ctx:
    Master-Key: 720846E32D...CA23
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1484331794
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---

하지만 이제 어떤 클라이언트도 서버에 연결되지 않습니다!
pidgin과 psi로 테스트했는데 둘 다 SSL 핸드셰이크 오류를 보고했습니다!

c2s.xml 예제를 읽으면 다음과 같은 내용을 찾을 수 있습니다.

<id realm='company.int'
    pemfile='/etc/jabberd2/server.pem'
    verify-mode='7'
    cachain='/etc/jabberd2/client_ca_certs.pem'
    require-starttls='mu'
    register-enable='mu'
    instructions='Enter a username and password to register with this server.'
    register-oob='http://example.org/register'
    password-change='mu'
>example.net</id>

그렇다면 client_ca_certs.pem이 누락된 것일까요?
그러나 나는 그것을 생성하는 방법을 모른다?

어떤 도움이라도 환상적일 것입니다.

답변1

-starttls xmppJabber는 포트 5222에서 STARTTLS 프로토콜 확장을 사용하므로 테스트할 때 확장을 활성화해야 합니다 .

openssl s_client -connect my.jabber.server.net:5222 -starttls xmpp </dev/null

5222 가상 호스트에 대한 모든 연결 옵션은 <id ... />태그의 속성으로 직접 설정됩니다.

활성화되면 포트 5223에서 SSL의 직접 XMPP 터널링이 가능합니다. <local> ... <pemfile> etc...5223 포트 구성 에서 태그로 구성하는 옵션입니다 . 이것을 활성화하면 -startls시도한 대로 옵션 없이 테스트할 수 있습니다.

openssl s_client -connect my.jabber.server.net:5223 </dev/null

관련 정보