TLS грешка со шифра во OpenVPN: прво споредете ги двата страни
Грешката „нема заедничка шифра“ ѝ припаѓа на контролната лента TLS, а не на data-ciphers. Прво споредете ги верзиите, потоа списоците со множества, па докажете ја преговорот.
Грешката „нема заедничка шифра“ звучи како една поставка што треба да се смени, а поставката што повеќето луѓе ја менуваат е погрешната. OpenVPN држи одделни политики за контролната лента што го изведува TLS-ракувањето и за податочната лента што пренесува пакети внатре во тунелот, а грешката ја именува првата додека луѓето ја уредуваат втората. Споредувањето на тоа што го дозволува секоја страна, во правилен редослед, го претвора нагаѓањето во две или три одлуки: верзија, потоа список со множества, потоа акредитиви.
Ако го погрешите тој редослед, може да потрошите еден час додавајќи име AES на список што никогаш не бил консултиран.
Два списоци со шифри, а само еден го крши ракувањето
Контролната лента преговара за TLS-сесија, а нејзината политика се запишува со tls-cipher за TLS 1.2 и tls-ciphersuites за TLS 1.3. Податочната лента се поставува одделно со data-ciphers, каде несовпаѓањето создава врска која се воспоставува и потоа не може да пренесе сообраќај. Двете даваат грешки што спомнуваат шифри, затоа се мешаат. Ракување што никогаш не завршува укажува на контролната лента, додека воспоставен тунел што губи пакети укажува на податочната лента.
Прочитајте ја целата порака, а не првиот ред. Несовпаѓање на верзии, множество што недостасува, алгоритам за потпис на сертификат што страната го одбива и неуспех на проверката на името на домаќинот сите завршуваат со TLS-грешка, а само една од нив се однесува на вашиот список со множества. Одвојувањето на тие категории е најголемиот дел од дијагнозата.
Споредете ги верзиите пред да ги споредите множествата
Страна ограничена на TLS 1.2 и страна што бара 1.3 не делат ниту една верзија и никаков низа шифри не го премостува тоа. Запишете tls-version-min и tls-version-max на двете страни, или стандардните вредности на градбите во употреба, бидејќи OpenSSL-политиката на дистрибуција може да го крене долниот праг без ниту една опција на OpenVPN тоа да го каже. Ако едната страна е уред или клиент од трета страна, нејзиниот прозорец е она што го дозволува нејзиниот фирмвер. Дури кога прозорците се преклопуваат, споредбата на множества значи нешто.
Тие записи треба да ги именуваат и вистинските бинарни датотеки. Командната openvpn на вашиот преносен сметач не е нужно клиентот што ракува со увезен профил.
Списоците за TLS 1.2 и TLS 1.3 не се мешаат
Имињата на множествата за TLS 1.2 изгледаат како ECDHE-RSA-AES256-GCM-SHA384 и припаѓаат во tls-cipher, што прима OpenSSL-низа шифри. Множествата за TLS 1.3 се именуваат како TLS_AES_256_GCM_SHA384 и припаѓаат во tls-ciphersuites; додавањето на едно во низата за 1.2 не го поставува списокот за 1.3, а парсерот може да го прифати текстот без некогаш да го совпадне. Филтер што е точен за една верзија не кажува ништо за другата. Запишете за која верзија е наменет секој список.
openvpn --show-tls испечатува што поддржува локалната градба, и тоа е попис, а не ветување: далечната страна може да не ги дозволува тие множества, а активниот профил може да не ги вклучува. Користете го за да исклучите градба што воопшто не може да понуди множество, потоа споредете ги поставените списоци.
Докажете ја преговорот на нова врска
Успешното ракување е единствениот доказ што се смета, и мора да дојде од вистинскиот клиент со вистинскиот профил. Зголемете ја деталноста на серверот, поврзете се еднаш и прочитајте од дневникот преговараната верзија на протоколот и множеството, наместо да претпоставите дека првата понудена вредност победи. Потоа одделно потврдете ја податочната лента со сообраќај низ тунелот, бидејќи функционално ракување и податочна лента што откажува се различни поправки. Повторете по секоја промена на поставките, бидејќи застарен клиентски профил е чест лажно негативен резултат.
Ако нема одобрена заедничка конфигурација, одговорот е надградба или план за миграција, а не ослабена политика. tls-version-min го намалувате, ја исклучувате проверката или ги вклучувате сите стари множества го отстранува одбивањето без да го исполни безбедносниот услов што го создал.
Запишете ги преговараната верзија, множеството и податочната шифра во тикетот за промена. Следниот човек што ќе наиде на TLS-грешка ќе почне од тој запис, а не од низа шифри најдена во објава на форум.