Error sa cipher ng TLS sa OpenVPN: ihambing muna ang dalawang peer
Ang error na «walang shared cipher» ay kabilang sa TLS control channel, hindi sa data-ciphers. Ihambing muna ang mga bersyon, pagkatapos ang mga listahan ng suite, at patunayan ang negosasyon.
Ang error na «walang shared cipher» ay parang isang setting lang ang babaguhin, at ang setting na binabago ng karamihan ay ang mali. OpenVPN ay may hiwalay na patakaran para sa control channel na gumagawa ng TLS handshake at para sa data channel na nagdadala ng packets sa loob ng tunnel, at pinapangalanan ng error ang una habang ineedit ng mga tao ang pangalawa. Ang paghahambing kung ano ang pinapayagan ng bawat panig, sa tamang pagkakasunod-sunod, ay ginagawang dalawa o tatlong desisyon ang hula: bersyon, pagkatapos listahan ng suite, pagkatapos mga kredensyal.
Kung mali ang pagkakasunod-sunod, maaaring maubos ang isang oras sa pagdaragdag ng pangalang AES sa listahang hindi kailanman tiningnan.
Dalawang listahan ng cipher, at isa lang ang sumisira sa handshake
Ang control channel ay nakikipagnegosasyon ng TLS session, at ang patakaran nito ay isinusulat gamit ang tls-cipher para sa TLS 1.2 at tls-ciphersuites para sa TLS 1.3. Ang data channel ay hiwalay na kinokonfigura gamit ang data-ciphers, kung saan ang hindi pagkakatugma ay gumagawa ng koneksyon na naitatayo at pagkatapos ay hindi makapagpadala ng trapiko. Pareho silang naglalabas ng error na tumutukoy sa cipher, kaya napagkakamalang magkapareho. Ang handshake na hindi kailanman natapos ay tumutukoy sa control channel, samantalang ang naitayong tunnel na nagtatapon ng packets ay tumutukoy sa data channel.
Basahin ang buong mensahe, hindi ang unang linya. Ang hindi pagkakatugma ng bersyon, kulang na suite, algorithm ng lagda ng sertipiko na tinatanggihan ng panig, at kabiguan ng pagpapatunay ng hostname ay pawang nagtatapos sa TLS error, at isa lang sa mga ito ang tungkol sa iyong listahan ng suite. Ang paghihiwalay ng mga kategoryang ito ang malaking bahagi ng diagnosis.
Ihambing ang mga bersyon bago ihambing ang mga suite
Ang panig na limitado sa TLS 1.2 at ang panig na nangangailangan ng 1.3 ay walang pinagsasaluhang bersyon, at walang cipher string ang nag-uugnay doon. Itala ang tls-version-min at tls-version-max sa magkabilang panig, o ang mga default ng mga build na ginagamit, dahil maaaring itaas ng patakaran ng OpenSSL ng isang distribusyon ang pinakamababa nang walang anumang opsyon ng OpenVPN na magsabi nito. Kung ang isang panig ay appliance o third-party client, ang window nito ay kung ano ang pinapayagan ng firmware nito. Magkakaroon lang ng kahulugan ang paghahambing ng suite kapag nagsanib ang mga window.
Dapat ding pangalanan ng mga talang iyon ang aktwal na mga binary. Ang openvpn sa command line sa iyong laptop ay hindi laging ang client na humahawak ng na-import na profile.
Hindi naghahalo ang mga listahan ng TLS 1.2 at TLS 1.3
Ang mga pangalan ng suite ng TLS 1.2 ay mukhang ECDHE-RSA-AES256-GCM-SHA384 at nabibilang sa tls-cipher, na tumatanggap ng OpenSSL cipher string. Ang mga suite ng TLS 1.3 ay tinatawag na TLS_AES_256_GCM_SHA384 at nabibilang sa tls-ciphersuites; ang pagdaragdag ng isa sa 1.2 string ay hindi nagko-configure ng 1.3 listahan, at maaaring tanggapin ng parser ang teksto nang hindi ito itinutugma kailanman. Ang filter na tama para sa isang bersyon ay walang sinasabi tungkol sa isa. Isulat kung aling listahan ang para sa aling bersyon.
openvpn --show-tls ay nagpi-print kung ano ang sinusuportahan ng lokal na build, at iyon ay imbentaryo, hindi pangako: maaaring hindi pinapayagan ng remote na panig ang mga suite na iyon, at maaaring hindi ito i-enable ng aktibong profile. Gamitin ito para ibukod ang build na hindi makapag-alok ng anumang suite, pagkatapos ihambing ang mga naka-configure na listahan.
Patunayan ang negosasyon sa bagong koneksyon
Ang matagumpay na handshake ang tanging ebidensyang binibilang, at kailangan itong magmula sa tunay na client na may tunay na profile. Taasan ang verbosity ng server, kumonekta nang isang beses, at basahin mula sa log ang na-negotiate na bersyon ng protocol at suite sa halip na ipagpalagay na ang unang inalok na halaga ang nanalo. Pagkatapos, hiwalay na kumpirmahin ang data channel gamit ang trapiko sa tunnel, dahil ang gumaganang handshake at ang bumabagsak na data channel ay magkaibang pag-aayos. Ulitin pagkatapos ng anumang pagbabago sa configuration, dahil ang lumang profile ng client ay karaniwang maling negatibong resulta.
Kung walang aprubadong karaniwang configuration, ang sagot ay upgrade o plano ng paglipat, hindi pinahinang patakaran. tls-version-min pagbaba, pagpatay ng pagpapatunay, o pag-enable sa lahat ng lumang suite ay nag-aalis ng pagtanggi nang hindi natutugunan ang kinakailangan sa seguridad na lumikha nito.
Itala sa ticket ng pagbabago ang na-negotiate na bersyon, suite, at data cipher. Ang susunod na taong makakatagpo ng TLS error ay magsisimula sa talang iyon, hindi sa cipher string na natagpuan sa isang post sa forum.