LINUX.ORG.RU
решено ФорумAdmin

SSL Handshake Failed: нужна установка сертификата

 , , ,


0

2

Расклад таков. Есть задача использовать Lync/Skype for Business на домашней машине, где Kubuntu. При подключении при помощи pidgin (pidgin-sipe установлен) имеем:

бла.бла@бла.бла,бла\бла disconnected
SSL Handshake Failed

Пробую через терминал:

$ openssl s_client -connect XEUCCWeb01.bpglobal.com:443 -state
CONNECTED(00000003)
SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
140135568639640:error:140790E5:SSL routines:ssl23_write:ssl handshake failure:s23_lib.c:177:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 305 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1463517852
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

Насколько я понял, нужно установить в систему сертификаты (поправьте, если ошибаюсь). Вопрос собсно в том как их установить. Вытащил из венды в виде трёх файлов: два разных X.509 и один (в котором внутри три) в формате p7b. Добавление сертификата в сам pidgin не помогло.

★★★

похоже сервер принимает строго TLS1

$ openssl s_client -connect XEUCCWeb01.bpglobal.com:443 -state -tls1

CONNECTED(00000003)
SSL_connect:before/connect initialization
SSL_connect:SSLv3 write client hello A
SSL_connect:SSLv3 read server hello A
depth=2 O = Entrust.net, OU = www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), OU = (c) 1999 Entrust.net Limited, CN = Entrust.net Certification Authority (2048)
verify return:1
depth=1 C = US, O = "Entrust, Inc.", OU = See www.entrust.net/legal-terms, OU = "(c) 2012 Entrust, Inc. - for authorized use only", CN = Entrust Certification Authority - L1K
verify return:1
depth=0 C = GB, ST = NA, L = Uxbridge, O = BP p.l.c., CN = XEUCCWeb01.bpglobal.com
verify return:1
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL_connect:SSLv3 read finished A
---
Certificate chain
 0 s:/C=GB/ST=NA/L=Uxbridge/O=BP p.l.c./CN=XEUCCWeb01.bpglobal.com
   i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
 1 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
   i:/O=Entrust.net/OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Certification Authority (2048)
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFHzCCBAegAwIBAgIEUNJK9jANBgkqhkiG9w0BAQsFADCBujELMAkGA1UEBhMC
VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3Qs
IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEuMCwGA1UEAxMlRW50cnVz
dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEwxSzAeFw0xNDEwMzAxMzM5NDFa
Fw0xNjEwMjkyMTIyNDZaMGMxCzAJBgNVBAYTAkdCMQswCQYDVQQIEwJOQTERMA8G
A1UEBxMIVXhicmlkZ2UxEjAQBgNVBAoTCUJQIHAubC5jLjEgMB4GA1UEAxMXWEVV
Q0NXZWIwMS5icGdsb2JhbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDR9fNeU4Q3i+FNimiCyGwYCQFoqxnqM1E8I+QYA/xyXf9fnRBKvV2vqBBp
Ot3Ezr8bdtLm9NvYyppwENToN4aUScpjsQwHNAFgrEFvO3Xfr2RQkFeQoNafenIr
3RLMweVwqkvnON3kAHdNbYil9pC1VkvFKBmoqfSoQ5l/d483vzeFAl52PVQwj3ld
MO+j47GyqLx86+Jp0tVHXwl1aGFQf1Cky43no/87ATpvcfaZOyZJLeNCiLjmFTpY
bCPiU7HwuSDkCs0XSJ9SZk3kDlAVgLCLOGR9aEzFjpAQ01ENeKpw7+E3uTLmF3WE
i5kTgi1nfJGZzniXJh0pG21UTmO1AgMBAAGjggGBMIIBfTALBgNVHQ8EBAMCBaAw
EwYDVR0lBAwwCgYIKwYBBQUHAwEwMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2Ny
bC5lbnRydXN0Lm5ldC9sZXZlbDFrLmNybDBLBgNVHSAERDBCMDYGCmCGSAGG+mwK
AQUwKDAmBggrBgEFBQcCARYaaHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwCAYG
Z4EMAQICMGgGCCsGAQUFBwEBBFwwWjAjBggrBgEFBQcwAYYXaHR0cDovL29jc3Au
ZW50cnVzdC5uZXQwMwYIKwYBBQUHMAKGJ2h0dHA6Ly9haWEuZW50cnVzdC5uZXQv
bDFrLWNoYWluMjU2LmNlcjAiBgNVHREEGzAZghdYRVVDQ1dlYjAxLmJwZ2xvYmFs
LmNvbTAfBgNVHSMEGDAWgBSConB03bxTP8971PfNf6dgxgpMvzAdBgNVHQ4EFgQU
SZh8MnsV1FBQDx0HMQT0+PZ2KpYwCQYDVR0TBAIwADANBgkqhkiG9w0BAQsFAAOC
AQEAEKD/SmYG9bkwkToFq4DnosgWRIEgPLBizBM4VjlaiDr5vYAYhNW78bXm8gOv
j3CrPIitUtUcrn+sJbQxwsy0HRnaM3RbYSV+rYRj5j2QrNJO9YB5XvTBUxDMqSQD
vLel7wiw1JEZBVhGHoSe0i8wiksvrU9+i1Z5UjAxEF53pPFpiej0I1oHzrdz+7mE
7dnl1kn2o/UKybAieVUlMaUfVtjmHTL9B9SUMA4XdX575C5j2H3mMM36k2gdo1Fz
e5gXdwTmL/9sN6dArUHPkSu7aQ6zwFF935GgxTVHPShcBf6NgWj8xClN1HA84tV6
fSHXLGCTATHgxtaznftT+PTHsA==
-----END CERTIFICATE-----
subject=/C=GB/ST=NA/L=Uxbridge/O=BP p.l.c./CN=XEUCCWeb01.bpglobal.com
issuer=/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
---
No client certificate CA names sent
---
SSL handshake has read 2751 bytes and written 518 bytes
---
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DES-CBC3-SHA
    Session-ID: 931B000043AFAAD4C412653ED86885CF617223D7EC62A9AA1E2D781DB5DACFF4
    Session-ID-ctx: 
    Master-Key: 92F0C64C4B6604B3233AE1FEBA3E2455C2CDEB4093A9829F1E26261835919E96F825D112C768DF84A60D479744C54803
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1463524501
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---

zaz ★★★★ ()
Ответ на: комментарий от Gannet

Подозреваю что нужно заставить pidgin создавать SSL context не

SSL_CTX_new(SSLv3_client_method())
а
SSL_CTX_new(TLSv1_client_method())
Тут либо патчить сам pidgin либо писать прелоад врапер.

zaz ★★★★ ()
Последнее исправление: zaz (всего исправлений: 1)
Ответ на: комментарий от Gannet

Тикет штуга долгая, и не факт что его заапрувят (так как решение в лоб сломает совместимость с другими серверами). Проще всего сделать свой врапер - делов на 15 минут.

zaz ★★★★ ()
Ответ на: комментарий от zaz

Тикет заинвалидили и указали на следующее.

Оказывается в pidgin есть плагин NSS Preferences (configure Ciphers and other Settings for the NSS SSL/TLS Plugin), в котором можно выбрать TLS/SSL Minimum Version и TLS/SSL Maximum Version, а также нужные Ciphers. Только вот этих Ciphers там дофига и больше и какой соответствует нужному (DES-CBC3-SHA ?) не могу понять. Скрин1 Скрин2 Скрин3

Gannet ★★★ ()
Ответ на: комментарий от anonymous_sama

Media encryption:
- obey server policy;
- always;
- optional;
- disabled.
Выбрал always. В результате, как и с obey server policy, имею: Server has disconnected. И вот такой дебаг. C сертификатом вроде норма, но почему происходит отключение от сервера... (?)

Gannet ★★★ ()

Решено

Наконец-то победил:

  • XEUCCWeb01.bpglobal.com:443 - сервер был определён ошибочно, это похоже web-сервер Lync, а не сервер для подключения; просто оставил поле пустым для автоопределения;
  • pidgin использует для параметров подключения плагин NSS, в котором по-умолчанию минимальная и максимальная версия используемого протокола - SSL3, в моём же случае нужен TLS, на который я и переключил в настройках плагина;
  • Ну и схема аутентификации мне подошла NTLM (Auto не срабатывало).

Остались мечты так же настроить Telepathy в KDE.

Gannet ★★★ ()
Ответ на: Решено от Gannet

Решено 2

Telepathy тоже настроено!

Gannet ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.