Ошибка выполнения квитирования связи tls evolution

Я настраиваю OpenVPN 2.3.6-1 на моем сервере Arch Linux для шифрования SMB-трафика через общедоступный Интернет. Когда я проверить установку на одном из моих виртуальных машин клиентов Linux, я получаю ошибку: TLS Error: TLS handshake failed.

Я быстро прочитал ( OpenVPN на OpenVZ Ошибка TLS: не удалось выполнить квитирование TLS (Google предложил решения, не помогающие) ) и попытался переключиться с UDP по умолчанию на TCP, но это только заставило клиента многократно сообщать, что время соединения истекло. Я также попытался отключить шифрование и проверку подлинности TLS, но это привело к сбою сервера Assertion failed at crypto_openssl.c:523. В обоих случаях необходимые изменения были внесены в конфигурации клиента и сервера.

Я следовал инструкциям на ( https://wiki.archlinux.org/index.php/OpenVPN ) для настройки OpenVPN и инструкциям на ( https://wiki.archlinux.org/index.php/Create_a_Public_Key_Infrastructure_Using_the_easy-rsa_Scripts ) создавать ключи и сертификаты. Единственными отклонениями, которые я сделал из этих инструкций, было указание имен моих собственных компьютеров и соответствующих им имен файлов ключей / сертификатов.

Смотрите также мой оригинальный вопрос о защите SMB-трафика через Интернет: ( Простое шифрование для общих ресурсов Samba )

Кто-нибудь может объяснить, как я могу решить эту проблему?

Детали:

Сервер: Arch Linux (в актуальном состоянии), подключенный напрямую к шлюзу через кабель Ethernet. Нет Iptables.

Клиент: Arch Linux (в актуальном состоянии) виртуальная машина на VirtualBox 4.3.28r100309 хост Windows 8.1, мостовой сетевой адаптер. Нет Iptables. Брандмауэр Windows отключен.

Шлюз: перенаправление портов для порта 1194 включено, без ограничений брандмауэра.

Вот файлы конфигурации на сервере и клиенте соответственно. Я создал их в соответствии с инструкциями на Arch Wiki.

/etc/openvpn/server.conf (Только строки без комментариев):

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server-name.crt
key /etc/openvpn/server-name.key
dh /etc/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

/etc/openvpn/client.conf (Только строки без комментариев):

client
dev tun
proto udp
remote [my public IP here] 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client-name.crt
key /etc/openvpn/client-name.key
remote-cert-tls server
tls-auth /etc/openvpn/ta.key 1
comp-lzo
verb 3

Вот результаты работы openvpn на машинах с вышеуказанными конфигурациями. Сначала я запустил сервер, затем клиент.

Вывод openvpn /etc/openvpn/server.confна сервер:

Thu Jul 30 17:02:53 2015 OpenVPN 2.3.6 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Dec  2 2014
Thu Jul 30 17:02:53 2015 library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.09
Thu Jul 30 17:02:53 2015 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x.  Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Thu Jul 30 17:02:53 2015 Diffie-Hellman initialized with 2048 bit key
Thu Jul 30 17:02:53 2015 Control Channel Authentication: using '/etc/openvpn/ta.key' as a OpenVPN static key file
Thu Jul 30 17:02:53 2015 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 17:02:53 2015 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 17:02:53 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Thu Jul 30 17:02:53 2015 ROUTE_GATEWAY 192.168.0.1/255.255.255.0 IFACE=enp5s0 HWADDR=##:##:##:##:##:##
Thu Jul 30 17:02:53 2015 TUN/TAP device tun0 opened
Thu Jul 30 17:02:53 2015 TUN/TAP TX queue length set to 100
Thu Jul 30 17:02:53 2015 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Thu Jul 30 17:02:53 2015 /usr/bin/ip link set dev tun0 up mtu 1500
Thu Jul 30 17:02:53 2015 /usr/bin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
Thu Jul 30 17:02:53 2015 /usr/bin/ip route add 10.8.0.0/24 via 10.8.0.2
Thu Jul 30 17:02:53 2015 GID set to nobody
Thu Jul 30 17:02:53 2015 UID set to nobody
Thu Jul 30 17:02:53 2015 UDPv4 link local (bound): [undef]
Thu Jul 30 17:02:53 2015 UDPv4 link remote: [undef]
Thu Jul 30 17:02:53 2015 MULTI: multi_init called, r=256 v=256
Thu Jul 30 17:02:53 2015 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Thu Jul 30 17:02:53 2015 IFCONFIG POOL LIST
Thu Jul 30 17:02:53 2015 Initialization Sequence Completed

Вывод openvpn /etc/openvpn/client.confна клиента:

Thu Jul 30 21:03:02 2015 OpenVPN 2.3.6 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Dec  2 2014
Thu Jul 30 21:03:02 2015 library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.09
Thu Jul 30 21:03:02 2015 WARNING: file '/etc/openvpn/client-name.key' is group or others accessible
Thu Jul 30 21:03:02 2015 WARNING: file '/etc/openvpn/ta.key' is group or others accessible
Thu Jul 30 21:03:02 2015 Control Channel Authentication: using '/etc/openvpn/ta.key' as a OpenVPN static key file
Thu Jul 30 21:03:02 2015 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 21:03:02 2015 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 21:03:02 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Thu Jul 30 21:03:02 2015 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Thu Jul 30 21:03:02 2015 UDPv4 link local: [undef]
Thu Jul 30 21:03:02 2015 UDPv4 link remote: [AF_INET][my public IP here]:1194
Thu Jul 30 21:04:02 2015 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Thu Jul 30 21:04:02 2015 TLS Error: TLS handshake failed
Thu Jul 30 21:04:02 2015 SIGUSR1[soft,tls-error] received, process restarting
Thu Jul 30 21:04:02 2015 Restart pause, 2 second(s)

Интернет сделал для нас удобным находить любую необходимую информацию. Вы можете посещать веб-сайты напрямую или использовать поисковую систему, например Google, для доступа к различным типам данных. Однако бывают случаи, когда мы не можем открывать веб-страницы, и этому может быть несколько причин. В некоторых случаях это может быть связано с вашим сетевым подключением. С другой стороны, еще одна распространенная проблема, которая вызывает эту проблему, — это сбой установления связи TLS.

Теперь вы можете спросить: «Что означает рукопожатие TLS?» TLS означает Transport Layer Security, протокол шифрования. Связь по этому протоколу остается конфиденциальной и безопасной. В этом посте мы собираемся объяснить, что происходит при рукопожатии TLS. Таким образом, вы лучше поймете концепцию. Более того, мы научим вас, как исправить ошибку сбоя установления связи TLS.

Как мы все знаем, когда есть форма переговоров или приветствия между двумя людьми, мы скрепляем это рукопожатием. Точно так же, когда два сервера обмениваются данными и подтверждают друг друга, они формируют рукопожатие TLS. Во время этого процесса серверы проходят проверку. Они устанавливают шифрование при обмене ключами. После подтверждения подлинности всех деталей начнется обмен данными. Вот четыре этапа рукопожатия TLS:

  1. Указывает версию TLS, которая будет использоваться для связи.
  2. Выбор алгоритма шифрования для связи.
  3. Открытый ключ и цифровая подпись эмитента сертификата SSL будут использоваться для проверки подлинности.
  4. Будут созданы сеансовые ключи, которые затем будут обмениваться между двумя серверами.

Чтобы упростить задачу, обе стороны сначала скажут «привет». Затем сервер предоставит сертификат, который клиент проверит. После того, как будет подтверждена подлинность сертификата, начнется сеанс. Перед этим будет создан ключ, который позволит обмениваться данными между серверами.

К сожалению, если проблема связана с сервером, вы ничего не можете сделать. Например, если сертификат с сервера не может быть аутентифицирован, тогда это уже не в ваших руках. Однако, если у вас возникли проблемы с браузером, который вы используете, вы все равно можете попробовать множество обходных путей. Кроме того, если вы имеете дело с несоответствием в протоколе TLS, вы можете исправить проблему в браузере.

Сбой рукопожатия TLS может быть по разным причинам. Прежде чем пытаться решить проблему, убедитесь, что вы действительно имеете дело с ошибкой рукопожатия TLS. В большинстве случаев можно соблюдать следующие правила:

  1. Попробуйте посетить другие сайты и посмотрите, сохраняется ли проблема.
  2. Если вы используете сеть Wi-Fi, попробуйте переключиться на проводную.
  3. Попробуйте другие сетевые подключения. Например, используйте другой маршрутизатор или переключитесь на общедоступную сеть.

После того, как вы установили причину проблемы, вы можете спросить: «Следует ли мне отключить квитирование TLS в моем браузере?» Мы понимаем ваше разочарование, но не рекомендуем этого делать. В конце концов, протокол TLS — один из лучших способов обеспечить безопасный просмотр. Действительно, вы можете продолжить просмотр веб-сайта даже с недействительным сертификатом. Однако вы никогда не должны совершать с ним какие-либо операции. Например, не отправляйте учетные данные пароля и не используйте свою кредитную карту.

С другой стороны, бывают случаи, когда сбой подтверждения TLS возникает из-за проблем с вашим браузером. В этом случае вы можете решить проблему, изменив некоторые настройки в вашем браузере. Ниже мы расскажем о некоторых из лучших обходных путей.

Решение 1. Обеспечение правильного системного времени

В большинстве случаев рукопожатие TLS не удается из-за неправильных настроек системного времени. Имейте в виду, что системное время является жизненно важным фактором при проверке того, действительно ли сертификат действителен или просрочен. Итак, если время на вашем ПК не совпадает со временем на сервере, то может показаться, что сертификаты больше не действительны. Поэтому мы рекомендуем вам установить системное время на «автоматическое». Вот шаги:

  1. На клавиатуре нажмите Windows Key + I. Откроется приложение «Настройки».
  2. В приложении «Настройки» выберите «Время и язык».
  3. Перейдите на правую панель и установите переключатель в разделе «Автоматически устанавливать время» в положение «Вкл.».
  4. Перезагрузите компьютер, затем попробуйте снова зайти на сайт, чтобы убедиться, что ошибка подтверждения TLS исчезла.

Решение 2. Изменение протокола TLS в Windows 10

Возможно, проблема связана с версией TLS, которую использует ваш браузер. Стоит отметить, что в Windows 10 и более ранних версиях операционной системы централизованы настройки протокола. Вы можете получить доступ к свойствам Интернета, чтобы переключиться на другую версию TLS. Для этого следуйте этим инструкциям:

  1. Запустите диалоговое окно «Выполнить», нажав клавиши Windows + R на клавиатуре.
  2. В диалоговом окне «Выполнить» введите «inetcpl.cpl» (без кавычек), затем нажмите «ОК».
  3. В окне свойств Интернета перейдите на вкладку «Дополнительно».
  4. Прокрутите вниз, пока не дойдете до раздела «Безопасность», где вы можете добавить или удалить протоколы TLS.
  5. Если веб-сайт, к которому вы пытаетесь получить доступ, требует TLS 1.2, вам необходимо его выбрать.
  6. Нажмите «Применить» и «ОК», чтобы сохранить внесенные изменения.
  7. После изменения версии TLS попробуйте снова получить доступ к тому же веб-сайту.

Когда дело доходит до протоколов TLS, IE, Chrome и Edge используют возможности Windows. Между тем Firefox управляет собственной базой данных сертификатов и протоколами TLS. Итак, если вы хотите изменить версию TLS в Firefox, выполните следующие действия:

  1. Запустите Firefox, затем введите «about: config» (без кавычек) в адресной строке.
  2. Нажмите Enter, затем щелкните поле поиска.
  3. Введите «TLS» (без кавычек), затем найдите security.tls.version.min.
  4. Вы можете изменить это на любое из следующего:

Установите TLS 1 и 1.1, введя 1 и 2.

Включите TLS 1.2, введя 3.

Установите максимальный протокол TLS 1.3, введя 4.

Решение 3. Удаление базы данных сертификатов или профиля браузера

Браузеры хранят базу данных сертификатов. Например, профили Firefox поддерживают файл cert8.db. Есть один способ узнать, что ошибка установления связи TLS связана с локальной базой данных сертификатов. Вы можете попробовать удалить файл cert8.db в Firefox. Если ошибка исчезает при перезагрузке компьютера и браузера, значит, вы определили причину.

Для Edge за обработку сертификатов отвечает диспетчер сертификатов. Вы можете удалить сертификаты, выполнив следующие действия:

  1. Откройте Edge, затем введите в адресной строке «edge: // settings / privacy» (без кавычек).
  2. Щелкните параметр «Управление сертификатами и настройками HTTPS / SSL», затем удалите сертификаты.

Если у вас возникли проблемы с поиском базы данных сертификатов, лучше всего удалить профиль браузера. Как только вы это сделаете, вы можете снова попытаться получить доступ к веб-сайту, чтобы узнать, исчезла ли ошибка TLS.

Решение 4. Сброс настроек браузера

Если ни одно из исправлений, которыми мы поделились, не может решить проблему TLS, то последнее средство — сбросить настройки браузера. Лучший способ сделать это — удалить и переустановить браузер. Как только вы это сделаете, вы можете снова попытаться получить доступ к веб-сайту, чтобы проверить, исчезла ли ошибка TLS.

В некоторых случаях время установления связи TLS истекает, и вы не можете посетить веб-сайт. Когда это происходит, вы, естественно, спросите: «Сколько времени занимает рукопожатие TLS?» Что ж, это займет несколько секунд. Если это занимает больше минуты или двух, возможно, у вас медленное сетевое соединение. С другой стороны, также возможно, что ваш браузер перегружен расширениями, надстройками и прочим мусором.

Когда это происходит, вы должны использовать надежный очиститель нежелательной почты с ПК, например Auslogics BoostSpeed. Вы можете использовать этот инструмент, чтобы легко избавиться от ненужных файлов браузера. Более того, BoostSpeed ​​имеет функции, которые позволяют настраивать неоптимальные настройки браузера, обеспечивая плавную и быструю работу.

Какое из решений помогло вам решить проблему с подтверждением TLS?

Дайте нам знать в комментариях ниже!

Я пытаюсь подключиться к сервису, которому для авторизации требуется сертификат. Процесс заключается в том, что я отправляю службе CSR-файл. Сервис подписывает CSR и отправляет мне сертификат, который я использую для подключения.

  1. Я сгенерировал CSR с помощью следующей командной строки:

    openssl req -new -nodes -newkey rsa:2048 -keyout cert.key -out cert.csr
    
  2. Я взял содержимое cert.csr и отправил им. Они генерируют сертификат клиента, и я получил обратно файл PEM.

  3. Теперь я пытаюсь подключиться, используя их файл сертификата в SSLCERT для curl () и предоставляя закрытый ключ из cert.key как CURLOPT_SSLKEY — (который я получил на шаге 1).

  4. Не удается: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

Что я делаю не так в этом процессе?

Это работает , когда я пытаюсь использовать полученный тестовый сертификат, включающий закрытый ключ от службы (самоподписанный сертификат). Но когда я использую сертификат, который они сгенерировали из моего CSR, а затем использую мой закрытый ключ в качестве ключа, возникает ошибка с ошибкой рукопожатия.

Итак, я знаю, что это не имеет отношения к тому, что openssl / curl не поддерживает v3 / TLS и т.д., что другие при поиске решения обнаружили, что их проблема.

Вот что я бегу:

  curl -i -v --request POST https://service.com/ --cert clientcert.pem --key private_key.pem --cert-type pem --tlsv1.1 --insecure
* Connected to service.com (1xx.xxx.xxx.xx) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Request CERT (13):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS handshake, CERT verify (15):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS alert, Server hello (2):
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
* Closing connection 0

Запуск следующих версий: curl 7.35.0 (x86_64-pc-linux-gnu) libcurl / 7.35.0 OpenSSL / 1.0.1f zlib / 1.2.8 libidn / 1.28 librtmp / 2.3

3 ответа

Лучший ответ

Не однозначный ответ, но слишком много, чтобы поместиться в комментариях:

Я предполагаю, что они предоставили вам сертификат, у которого либо неправильный эмитент (хотя их сервер мог использовать для этого более конкретный код предупреждения), либо неправильная тема. Мы знаем, что сертификат совпадает с вашим частным ключом, потому что оба curl и openssl client соединили их в пару, не пожаловавшись на несоответствие; но мы на самом деле не знаем, что он соответствует их желаемому ЦС, потому что ваш curl использует openssl, а клиент openssl SSL НЕ обеспечивает соответствие настроенного сертификата клиента certreq.CAs.

Сделайте openssl x509 <clientcert.pem -noout -subject -issuer и то же самое с сертификатом из теста P12, который работает. Сделайте openssl s_client (или проверьте тот, который вы сделали) и посмотрите под Acceptable client certificate CA names; имя там или одно из них должно совпадать (точно!) с эмитентом (ами) ваших сертификатов. Если нет, то, скорее всего, это ваша проблема, и вам необходимо проверить с ними, что вы отправили CSR в правильное место и правильным способом. Возможно, у них разные режимы в разных регионах или бизнес-направлениях, или тестирование vs prod, или active vs pending и т. Д.

Если эмитент вашего сертификата совпадает с желаемым CA, сравните его тему с рабочим (test-P12): они в аналогичном формате? есть ли какие-то компоненты в рабочем, которых нет в вашем? Если они позволяют это, попробуйте сгенерировать и отправить новый CSR с именем субъекта, точно таким же, как у test-P12, или как можно более близким, и посмотрите, даст ли это сертификат, который работает лучше. (Для этого не нужно создавать новый ключ , но если вы решите, отслеживайте, какие сертификаты соответствуют каким ключам, чтобы не перепутать их.) Если это не так. Это не поможет посмотреть на расширения сертификатов с openssl x509 <cert -noout -text на предмет каких-либо различий, которые могут быть разумно связаны с авторизацией субъекта, например KeyUsage, ExtendedKeyUsage, может быть Policy, может быть Constraints, может быть, даже что-то нестандартное.

Если ничего не помогает, спросите операторов серверов, что их журналы говорят о проблеме, или, если у вас есть доступ, посмотрите журналы самостоятельно.


4

dave_thompson_085
2 Апр 2016 в 22:32

Решением для меня в системе CentOS 8 была проверка политики системной криптографии путем проверки того, что / etc / crypto-policies / config читает значение по умолчанию DEFAULT , а не любое другое значение.

После изменения этого значения на ПО УМОЛЧАНИЮ выполните следующую команду:

/usr/bin/update-crypto-policies --set DEFAULT

Повторно запустите команду curl, и она должна работать.


1

canon
24 Сен 2020 в 18:09

Какой закрытый ключ SSL следует отправить вместе с сертификатом клиента?

Никто из них :)

Одна из привлекательных особенностей клиентских сертификатов заключается в том, что они не делают глупых вещей, таких как передача секрета (например, пароля) в виде простого текста на сервер (HTTP basic_auth). Пароль по-прежнему используется для разблокировки ключа для сертификата клиента, просто он не используется напрямую во время обмена или для аутентификации клиента.

Вместо этого клиент выбирает временный случайный ключ для этого сеанса. Затем клиент подписывает временный случайный ключ своим сертификатом и отправляет его на сервер (некоторая рука отказывается). Если злоумышленник что-то перехватит, это случайно, поэтому его нельзя будет использовать в будущем. Его нельзя даже использовать для второго запуска протокола с сервером, потому что сервер также выберет новое случайное значение.


Не удается: ошибка: 14094410: подпрограммы SSL: SSL3_READ_BYTES: сбой подтверждения подтверждения sslv3

Используйте TLS 1.0 и выше; и используйте указание имени сервера.

Вы не предоставили никакого кода, поэтому мне не ясно, как сказать вам, что делать. Вместо этого вот командная строка OpenSSL для проверки:

openssl s_client -connect www.example.com:443 -tls1 -servername www.example.com 
    -cert mycert.pem -key mykey.pem -CAfile <certificate-authority-for-service>.pem

Вы также можете использовать -CAfile, чтобы избежать «ошибки проверки: num = 20» . См., Например, «проверить ошибку: num = 20» при подключении к gateway.sandbox.push.apple.com.


5

Community
23 Май 2017 в 11:46

After upgrading to Ubuntu 20.04 from 18.04, I decided to re-add my company’s ancient exchange server’s account so that I can get email and the like from the company I work for. While adding the exchange server, I ran into the following issue.
«`
Error performing TLS handshake: A packet with illegal or unsupported version was received.
«`
I have verified that this works as expected in Ubuntu 18.04 and I do not get the same error back.

This is a possible regression bug, but rather than file it as such, I figured I would do my due diligence and ask the following: are there or were any changes to the versions of TLS that evolution supports or the versions of exchange servers that evolution supports in the latest version of evolution being deployed on 20.04?

Cheers and thanks in advance.

Can you help with this problem?

Provide an answer of your own, or ask
Russell Weber
for more information if necessary.

To post a message you must log in.

Я хочу использовать openvpn из centos7, но столкнулся с проблемами ошибки установления связи TLS (и ВНИМАНИЕ: метод проверки сертификата сервера не был включен).

код файла client.ovpn

client
dev tap
proto udp
remote 202.79.XX.XXX 1194
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
#ca wlink-ca.pem
ca ca.crt
comp-lzo
verb 3
auth-user-pass
route-method exe
route-delay 2

У меня есть 4 файла в /etc /openvpn

  1. ca.crt
  2. client.ovpn
  3. легко и РКА
  4. README.txt

Выход:

sudo openvpn --config client.ovpn 
Wed Mar 15 11:22:31 2017 OpenVPN 2.3.14 x86_64-redhat-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Dec  7 2016
Wed Mar 15 11:22:31 2017 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06
Enter Auth Username: ***************
Enter Auth Password: *****
Wed Mar 15 11:22:45 2017 WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Wed Mar 15 11:22:45 2017 Socket Buffers: R=[212992->212992] S=[212992->212992]
Wed Mar 15 11:22:45 2017 UDPv4 link local: [undef]
Wed Mar 15 11:22:45 2017 UDPv4 link remote: [AF_INET]202.79.XX.XXX:1194
Wed Mar 15 11:22:45 2017 TLS: Initial packet from [AF_INET]202.79.32.115:1194, sid=9b186f7d ff710a3f
Wed Mar 15 11:22:45 2017 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Mar 15 11:22:46 2017 VERIFY OK: depth=1, C=NP, ST=Bagmati, L=Kathmandu, O=Worldlink, OU=System, CN=something, emailAddress=something@something.com.np
Wed Mar 15 11:22:46 2017 VERIFY ERROR: depth=0, error=certificate signature failure: C=NP, ST=Bagmati, O=Worldlink, OU=System, CN=something, emailAddress=something@something.com.np
Wed Mar 15 11:22:46 2017 OpenSSL: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Wed Mar 15 11:22:46 2017 TLS_ERROR: BIO read tls_read_plaintext error
Wed Mar 15 11:22:46 2017 TLS Error: TLS object -> incoming plaintext read error
Wed Mar 15 11:22:46 2017 TLS Error: TLS handshake failed
Wed Mar 15 11:22:46 2017 SIGUSR1[soft,tls-error] received, process restarting
Wed Mar 15 11:22:46 2017 Restart pause, 2 second(s)
^CWed Mar 15 11:22:47 2017 SIGINT[hard,init_instance] received, process exiting
e here

Как я могу исправить эту проблему?

Не устанавливается jre 18.0.1.1-1 в pamac из AUR.

Manjaro MATE: Не устанавливается jre 18.0.1.1-1
Почему-то он даже и не начинает собираться.

Подготовка...
Синхронизация баз данных пакетов...
Проверка зависимостей для jre...
Разрешение зависимостей...
Проверка на взаимные конфликты...

Сборка jdk...
==> Сборка пакета jdk 18.0.1-1 (Вт 07 июн 2022 09:40:27)
==> Проверка зависимостей для запуска...
==> Проверка зависимостей для сборки...
==> Получение исходных файлов...
  -> Найден jdk-18.0.1_linux-x64_bin.tar.gz
  -> Найден jdk-18.0.1_doc-all.zip
  -> Найден jdk-18_doc-license.html
  -> Найден java.desktop
  -> Найден jconsole.desktop
  -> Найден jshell.desktop
  -> Найден java_16.png
  -> Найден java_48.png
  -> Найден LICENSE
==> Проверка файлов source с использованием sha256sums...
    jdk-18.0.1_linux-x64_bin.tar.gz ... Готово
    jdk-18.0.1_doc-all.zip ... Готово
    jdk-18_doc-license.html ... Готово
    java.desktop ... Готово
    jconsole.desktop ... Готово
    jshell.desktop ... Готово
    java_16.png ... Готово
    java_48.png ... Готово
    LICENSE ... Готово
==> Удаление директории '$srcdir/'...
==> Распаковка исходных файлов...
  -> Распаковка 'jdk-18.0.1_linux-x64_bin.tar.gz' с помощью bsdtar
==> Запускается prepare()...
==> Вход в окружение fakeroot...
==> Запускается package_jre()...
==> Очистка...
  -> Удаление файлов libtool...
  -> Удаление ненужных файлов...
  -> Удаление статических библиотек...
  -> Удаление отладочной информации из бинарников и библиотек...
  -> Сжатие документации (man и info)...
==> Проверка сборки на ошибки...
==> Создание пакета "jre"...
  -> Создание файла '.PKGINFO'...
  -> Создание файла '.BUILDINFO'...
  -> Добавление файла 'install'...
  -> Создание файла '.MTREE'...
  -> Сжатие пакета...
==> Запускается package_jdk()...
==> Очистка...
  -> Удаление файлов libtool...
  -> Удаление ненужных файлов...
  -> Удаление статических библиотек...
  -> Удаление отладочной информации из бинарников и библиотек...
  -> Сжатие документации (man и info)...
==> Проверка сборки на ошибки...
==> Создание пакета "jdk"...
  -> Создание файла '.PKGINFO'...
  -> Создание файла '.BUILDINFO'...
  -> Добавление файла 'install'...
  -> Создание файла '.MTREE'...
  -> Сжатие пакета...
==> Запускается package_jdk-doc()...
==> Очистка...
  -> Удаление файлов libtool...
  -> Удаление ненужных файлов...
  -> Удаление статических библиотек...
  -> Удаление отладочной информации из бинарников и библиотек...
  -> Сжатие документации (man и info)...
==> Проверка сборки на ошибки...
==> Создание пакета "jdk-doc"...
  -> Создание файла '.PKGINFO'...
  -> Создание файла '.BUILDINFO'...
  -> Создание файла '.MTREE'...
  -> Сжатие пакета...
==> Выход из окружения fakeroot.
==> Завершена сборка пакета jdk 18.0.1-1 (Вт 07 июн 2022 09:44:04)
==> Очистка...

Проверка связки ключей...
Проверка целостности...
Загрузка файлов пакетов...
Проверка файлов на конфликты ...
Проверка доступного дискового пространства...
Переустановка jre (18.0.1-1)...
Транзакция успешно завершена.

Manjaro MATE: Не устанавливается jre 18.0.1.1-1

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Еще одна причина ошибки при коннекте к OpenVPN серверу
TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity). TLS Error: TLS handshake failed


Как ни стран­но, при­чи­на не свя­за­на с кон­фи­га­ми само­го OpenVPN сер­ве­ра или кли­ен­тов, а кро­ет­ся в сети, что и напи­са­но в логе.
Про­слуш­ка тра­фи­ка пока­за­ла, что нет обрат­но­го кон­нек­та от сер­ве­ра до кли­ен­та при рукопожатии:

14:01:59.465502 IP ServerIP.openvpn &gt; ClientIP.54954: UDP, length 42

14:02:00.272635 IP ClientIP.54961 &gt; ServerIP.openvpn: UDP, length 42

14:02:00.272889 IP ServerIP.openvpn &gt; ClientIP.54961: UDP, length 54

14:02:03.568343 IP ClientIP.54961 &gt; ServerIP.openvpn: UDP, length 42

14:02:03.568536 IP ServerIP.openvpn &gt; ClientIP.54961: UDP, length 50

14:02:03.612846 IP ClientIP &gt; ServerIP: ICMP host ClientIP unreachable — admin prohibited filter, length 36

При подроб­ном режи­ме (verbose) такая картина:

14:08:14.154062 IP (tos 0x0, ttl 64, id 21182, offset 0, flags [DF], proto UDP (17), length 70)

    ServerIP.openvpn &gt; ClientIP.57304: [bad udp cksum 0xd2f6 —&gt; 0xb107!] UDP, length 42

14:08:20.193700 IP (tos 0x0, ttl 122, id 29713, offset 0, flags [none], proto UDP (17), length 70)

    ClientIP.62614 &gt; ServerIP.openvpn: [udp sum ok] UDP, length 42

14:08:20.194123 IP (tos 0x0, ttl 64, id 21620, offset 0, flags [DF], proto UDP (17), length 82)

    ServerIP.openvpn &gt; ClientIP.62614: [bad udp cksum 0xd302 —&gt; 0x6091!] UDP, length 54

14:08:20.238329 IP (tos 0x0, ttl 250, id 27288, offset 0, flags [none], proto ICMP (1), length 56)

    ClientIP &gt; ServerIP: ICMP host ClientIP unreachable — admin prohibited filter, length 36

IP (tos 0x0, ttl 58, id 21620, offset 0, flags [DF], proto UDP (17), length 82)

    ServerIP.openvpn &gt; ClientIP.62614: UDP, length 54

14:08:21.400665 IP (tos 0x0, ttl 122, id 29742, offset 0, flags [none], proto UDP (17), length 70)

    ClientIP.62614 &gt; ServerIP.openvpn: [udp sum ok] UDP, length 42

14:08:21.400811 IP (tos 0x0, ttl 64, id 21703, offset 0, flags [DF], proto UDP (17), length 78)

    ServerIP.openvpn &gt; ClientIP.62614: [bad udp cksum 0xd2fe —&gt; 0x80f0!] UDP, length 50

При­чи­на кры­лась в запре­те фор­вар­да вхо­дя­щих UDP под­клю­че­ний на цис­ке роу­те­ре со сто­ро­ны кли­ен­та. При этом исхо­дя­щие рабо­та­ли, т.к. под­клю­че­ние и обще­ние до руко­по­жа­тия происходило.
Как толь­ко раз­ре­ши­ли про­хо­дить UDP тра­фик — кон­нект до OpenVPN сер­ве­ра поднялся.
Если нет воз­мож­но­сти открыть UDP тра­фик, то сто­ит перей­ти на TCP соединение.

https://github.com/midnight47/

Installing a Secure Sockets Layer (SSL) certificate on your WordPress site enables it to use HTTPS to ensure secure connections. Unfortunately, there are a variety of things that can go wrong in the process of confirming a valid SSL certificate and making a connection between your site’s server and a visitor’s browser.

If you’ve encountered an “SSL Handshake Failed” error message and are confused as to what it means, you’re not alone. It’s a common error that doesn’t tell you much on its own. While this can be a frustrating experience, the good news is that there are simple steps you can take to resolve the issue.

In this post, we’ll explain what the SSL Handshake Failed error is and what causes it. Then we’ll provide you with several methods you can use to fix it.

Let’s get started!

An Introduction to the SSL Handshake

Before we dig deeper into what causes a TLS or SSL handshake failure, it’s helpful to understand what the TLS/SSL handshake is. Secure Sockets Layer (SSL) and Transport Layer Security (TLS) are protocols used to authenticate data transfers between servers and external systems such as browsers.

SSL certificates are needed in order to secure your website using HTTPS. We won’t get too in-depth about the difference between TLS vs SSL since it’s a minor one. The terms are often used interchangeably, so for simplicity’s sake, we’ll use “SSL” to refer to both.

With that out of the way, an SSL handshake is the first step in the process of establishing an HTTPS connection. To authenticate and establish the connection, the user’s browser and the website’s server must go through a series of checks (the handshake), which establish the HTTPS connection parameters.

Let us explain: the client (typically the browser) sends a request for a secure connection to the server. After the request is sent, the server sends a public key to your computer and checks that key against a list of certificates. The computer then generates a key and encrypts it, using the public key sent from the server.

To make a long story short, without the SSL handshake, a secure connection won’t be made. This can pose a significant security risk. Plus, there are a lot of moving parts involved in the process.

That means there are many different opportunities for something to go wrong and cause a handshake failure, or even lead to the “your connection is not private” error, causing visitors to leave.

Confronted with the ‘SSL Handshake Failed’ error? 🤝 Get a grip on how to solve it with these 5 methods ⤵️Click to Tweet

Understanding What Causes SSL Handshake Failures

An SSL Handshake Failure or Error 525 means that the server and browser were unable to establish a secure connection. This can happen for a variety of reasons.

Generally, an Error 525 means that the SSL handshake between a domain using Cloudflare and the origin web server failed:

ssl handshake failed error

However, it’s also important to understand that SSL errors can happen on the client-side or the server-side. Common causes of SSL errors on the client-side include:

  • The wrong date or time on the client device.
  • An error with the browser configuration.
  • A connection that is being intercepted by a third party.

Some server-side causes include:

  • A cipher suite mismatch.
  • A protocol used by the client that isn’t supported by the server.
  • A certificate that is incomplete, invalid, or expired.

Typically, if the SSL handshake fails, the issue can be attributed to something wrong with the website or server and their SSL configurations.

How to Fix the SSL Handshake Failed Error (5 Methods)

There are several potential causes behind the “SSL Handshake Failed” error. So there’s no simple answer when it comes to how you should fix it.

Fortunately, there are a handful of methods you can use to begin exploring potential issues and resolving them one by one. Let’s take a look at five strategies you can use to try and fix the SSL Handshake Failed error.

1. Update Your System Date and Time

Let’s start with one of the more unlikely causes, but one that is incredibly easy to correct if it is the problem: your computer’s clock.

If your system is using the wrong date and time, that may interrupt the SSL handshake. When the system clock is different than the actual time, for example, if it’s set too far into the future, it can interfere with the SSL certificate verification.

Your computer’s clock might have been set incorrectly due to human error or simply due to a glitch in your settings. Whatever the reason, it’s a good idea to check and make sure your system time is correct, and update it if it’s not.

Of course, if your clock is showing the correct information, it’s safe to assume that this isn’t the source of the “SSL Handshake Failed” issue.

2. Check to See If Your SSL Certificate Is Valid

Expiration dates are placed on SSL certificates, to help make sure their validation information remains accurate. Generally, the validity of these certificates lasts for anywhere between six months and two years.

If an SSL certificate is revoked or expired, the browser will detect this and be unable to complete the SSL handshake. If it’s been more than a year or so since you installed an SSL certificate on your website, it might be time to reissue it.

To view the status of your SSL certificate, you can use an SSL certificate checker tool such as the one offered by Qualys:

qualys labs

The SSL Server Test tool on the Qualys website

This tool is both reliable and free to use. All you need to do is input your domain name into the Hostname field, and then click on Submit. Once the checker is done analyzing your site’s SSL configuration, it will present you with some results:

ssl certificate status

The results page of the Qualys SSL checker tool

On this page, you can find out if your certificate is still valid and see if it has been revoked for any reason.

In either case, updating your SSL certificate should resolve the handshake error (and is vital for keeping your site and your WooCommerce store secure).

3. Configure Your Browser for the Latest SSL/TLS Protocol Support

Sometimes the best way to determine the root cause of an issue is by process of elimination. As we mentioned earlier, the SSL handshake failure can often occur due to a browser misconfiguration.

The quickest way to determine whether a particular browser is the problem is to try switching to a different one. This can at least help narrow down the problem. You may also try disabling any plugins and resetting your browser back to its default settings.

Another potential browser-related issue is a protocol mismatch. For example, if the server only supports TLS 1.2, but the browser is only configured for TLS 1.0 or TLS 1.1, there’s no mutually-supported protocol available. This will inevitably lead to an SSL handshake failure.

How you can check to see if this problem is occurring varies based on the browser you’re using. As an example, we’ll look at how the process works in Chrome. First, open your browser and go to Settings > Advanced. This will expand a number of menu options.

Under the System section, click on Open your computer’s proxy settings:

proxy settings

The system settings page in Google Chrome

This will open up a new window. Next, select the Advanced tab. Under the Security section, check to see if the box next to Use TLS 1.2 is selected. If not, check that option:

Fix "ssl handshake failed" error: ssl tls settings

The Internet Properties advanced settings in Windows

It’s also recommended that you uncheck the boxes for SSL 2.0 and SSL 3.0.

The same applies to TLS 1.0 and TLS 1.1 since they are being phased out. When you’re done, click on the OK button, and check to see if the handshake error has been resolved.

Note that if you’re using Apple Safari or Mac OS there isn’t an option to enable or disable SSL protocols. TLS 1.2 is automatically enabled by default. If you’re using Linux, you can refer to the Red Hat guide on TLS hardening.

4. Verify That Your Server Is Properly Configured to Support SNI

It’s also possible that the SSL handshake failure is being caused by improper Server Name Indication (SNI) configuration. The SNI is what enables a web server to securely host several TLS certificates for one IP address.

Each website on a server has its own certificate. However, if the server isn’t SNI-enabled, that can result in an SSL handshake failure, because the server may not know which certificate to present.

There are a few ways to check and see whether a site requires SNI. One option is to use Qualys’ SSL Server Test, which we discussed in the previous section. Input your site’s domain name, and then click on the Submit button.

On the results page, look for a message that reads “This site works only in browsers with SNI support”:

browser sni support

The summary results page of the Qualys SSL checker tool

Another approach for detecting if a server is using SNI is to browse the server names in the ‘ClientHello’ message. This is a more technical process, but it can offer a lot of information.

It involves checking the extended hello header for a ‘server_name’ field, to see if the correct certifications are presented.

If you’re familiar with using tools such as the OpenSSL toolkit and Wireshark, you might find this method preferable. You can use openssl s_client with and without the -servername option:

# without SNI
 $ openssl s_client -connect host:port 

 # use SNI
 $ openssl s_client -connect host:port -servername host

If you get two different certificates with the same name, it means that the SNI is supported and properly configured.

However, if the output in the returned certificates is different, or the call without SNI cannot establish an SSL connection, it indicates that SNI is required but not correctly configured. Resolving this issue may require switching to a dedicated IP address.

5. Make Sure the Cipher Suites Match

If you still haven’t been able to identify the cause of the SSL handshake failure, it might be due to a cipher suite mismatch. In case you’re unfamiliar with the term, ‘cipher suites’ refer to a set of algorithms, including ones for key exchange, bulk encryption, and message authentication code, that can be used for securing SSL and TLS network connections.

If the cipher suites that a server uses don’t support or match what’s used by Cloudflare, that can result in an “SSL Handshake Failed” error.

When it comes to figuring out whether there is a cipher suite mismatch, Qualys’ SSL Server Test proves yet again to be a useful tool.

When you input your domain and click on Submit, you’ll see a summary analysis page. You can find the cipher information under the Cipher Suites section:

qualys cipher suites

The Cipher Suites section in a Qualys SSL report

You can use this page to discover which ciphers and protocols the server supports. You’ll want to look out for any that display the ‘weak’ status. In addition, this section also details the specific algorithms for the cipher suites.

To correct this issue, you can compare the results against what your browser supports by using the Qualys SSL/TLS Capabilities of Your Browser tool. For more extensive information and guidance about cipher suites, we also recommend checking out the ComodoSSLStore guide.

Confused by the ‘SSL Handshake Failed’ error message? This guide explains what it is and, most importantly, 5 ways to fix it 🙌Click to Tweet

Summary

One of the most perplexing yet common types of SSL-related problems is the “SSL Handshake Failed” error. Dealing with this error can be stressful since it has many potential causes, including both client- and server-side issues.

However, there are some reliable solutions you can use to identify the problem and resolve it. Here are five ways you can use to fix the SSL Handshake Failed error:

  1. Update your system date and time.
  2. Check to see if your SSL certificate is valid (and reissue it if necessary).
  3. Configure your browser to support the latest TLS/SSL versions.
  4. Verify that your server is properly configured to support SNI.
  5. Make sure the cipher suites match.

Get all your applications, databases and WordPress sites online and under one roof. Our feature-packed, high-performance cloud platform includes:

  • Easy setup and management in the MyKinsta dashboard
  • 24/7 expert support
  • The best Google Cloud Platform hardware and network, powered by Kubernetes for maximum scalability
  • An enterprise-level Cloudflare integration for speed and security
  • Global audience reach with up to 35 data centers and 275+ PoPs worldwide

Test it yourself with $20 off your first month of Application Hosting or Database Hosting. Explore our plans or talk to sales to find your best fit.

Installing a Secure Sockets Layer (SSL) certificate on your WordPress site enables it to use HTTPS to ensure secure connections. Unfortunately, there are a variety of things that can go wrong in the process of confirming a valid SSL certificate and making a connection between your site’s server and a visitor’s browser.

If you’ve encountered an “SSL Handshake Failed” error message and are confused as to what it means, you’re not alone. It’s a common error that doesn’t tell you much on its own. While this can be a frustrating experience, the good news is that there are simple steps you can take to resolve the issue.

In this post, we’ll explain what the SSL Handshake Failed error is and what causes it. Then we’ll provide you with several methods you can use to fix it.

Let’s get started!

An Introduction to the SSL Handshake

Before we dig deeper into what causes a TLS or SSL handshake failure, it’s helpful to understand what the TLS/SSL handshake is. Secure Sockets Layer (SSL) and Transport Layer Security (TLS) are protocols used to authenticate data transfers between servers and external systems such as browsers.

SSL certificates are needed in order to secure your website using HTTPS. We won’t get too in-depth about the difference between TLS vs SSL since it’s a minor one. The terms are often used interchangeably, so for simplicity’s sake, we’ll use “SSL” to refer to both.

With that out of the way, an SSL handshake is the first step in the process of establishing an HTTPS connection. To authenticate and establish the connection, the user’s browser and the website’s server must go through a series of checks (the handshake), which establish the HTTPS connection parameters.

Let us explain: the client (typically the browser) sends a request for a secure connection to the server. After the request is sent, the server sends a public key to your computer and checks that key against a list of certificates. The computer then generates a key and encrypts it, using the public key sent from the server.

To make a long story short, without the SSL handshake, a secure connection won’t be made. This can pose a significant security risk. Plus, there are a lot of moving parts involved in the process.

That means there are many different opportunities for something to go wrong and cause a handshake failure, or even lead to the “your connection is not private” error, causing visitors to leave.

Confronted with the ‘SSL Handshake Failed’ error? 🤝 Get a grip on how to solve it with these 5 methods ⤵️Click to Tweet

Understanding What Causes SSL Handshake Failures

An SSL Handshake Failure or Error 525 means that the server and browser were unable to establish a secure connection. This can happen for a variety of reasons.

Generally, an Error 525 means that the SSL handshake between a domain using Cloudflare and the origin web server failed:

ssl handshake failed error

However, it’s also important to understand that SSL errors can happen on the client-side or the server-side. Common causes of SSL errors on the client-side include:

  • The wrong date or time on the client device.
  • An error with the browser configuration.
  • A connection that is being intercepted by a third party.

Some server-side causes include:

  • A cipher suite mismatch.
  • A protocol used by the client that isn’t supported by the server.
  • A certificate that is incomplete, invalid, or expired.

Typically, if the SSL handshake fails, the issue can be attributed to something wrong with the website or server and their SSL configurations.

How to Fix the SSL Handshake Failed Error (5 Methods)

There are several potential causes behind the “SSL Handshake Failed” error. So there’s no simple answer when it comes to how you should fix it.

Fortunately, there are a handful of methods you can use to begin exploring potential issues and resolving them one by one. Let’s take a look at five strategies you can use to try and fix the SSL Handshake Failed error.

1. Update Your System Date and Time

Let’s start with one of the more unlikely causes, but one that is incredibly easy to correct if it is the problem: your computer’s clock.

If your system is using the wrong date and time, that may interrupt the SSL handshake. When the system clock is different than the actual time, for example, if it’s set too far into the future, it can interfere with the SSL certificate verification.

Your computer’s clock might have been set incorrectly due to human error or simply due to a glitch in your settings. Whatever the reason, it’s a good idea to check and make sure your system time is correct, and update it if it’s not.

Of course, if your clock is showing the correct information, it’s safe to assume that this isn’t the source of the “SSL Handshake Failed” issue.

2. Check to See If Your SSL Certificate Is Valid

Expiration dates are placed on SSL certificates, to help make sure their validation information remains accurate. Generally, the validity of these certificates lasts for anywhere between six months and two years.

If an SSL certificate is revoked or expired, the browser will detect this and be unable to complete the SSL handshake. If it’s been more than a year or so since you installed an SSL certificate on your website, it might be time to reissue it.

To view the status of your SSL certificate, you can use an SSL certificate checker tool such as the one offered by Qualys:

qualys labs

The SSL Server Test tool on the Qualys website

This tool is both reliable and free to use. All you need to do is input your domain name into the Hostname field, and then click on Submit. Once the checker is done analyzing your site’s SSL configuration, it will present you with some results:

ssl certificate status

The results page of the Qualys SSL checker tool

On this page, you can find out if your certificate is still valid and see if it has been revoked for any reason.

In either case, updating your SSL certificate should resolve the handshake error (and is vital for keeping your site and your WooCommerce store secure).

3. Configure Your Browser for the Latest SSL/TLS Protocol Support

Sometimes the best way to determine the root cause of an issue is by process of elimination. As we mentioned earlier, the SSL handshake failure can often occur due to a browser misconfiguration.

The quickest way to determine whether a particular browser is the problem is to try switching to a different one. This can at least help narrow down the problem. You may also try disabling any plugins and resetting your browser back to its default settings.

Another potential browser-related issue is a protocol mismatch. For example, if the server only supports TLS 1.2, but the browser is only configured for TLS 1.0 or TLS 1.1, there’s no mutually-supported protocol available. This will inevitably lead to an SSL handshake failure.

How you can check to see if this problem is occurring varies based on the browser you’re using. As an example, we’ll look at how the process works in Chrome. First, open your browser and go to Settings > Advanced. This will expand a number of menu options.

Under the System section, click on Open your computer’s proxy settings:

proxy settings

The system settings page in Google Chrome

This will open up a new window. Next, select the Advanced tab. Under the Security section, check to see if the box next to Use TLS 1.2 is selected. If not, check that option:

Fix "ssl handshake failed" error: ssl tls settings

The Internet Properties advanced settings in Windows

It’s also recommended that you uncheck the boxes for SSL 2.0 and SSL 3.0.

The same applies to TLS 1.0 and TLS 1.1 since they are being phased out. When you’re done, click on the OK button, and check to see if the handshake error has been resolved.

Note that if you’re using Apple Safari or Mac OS there isn’t an option to enable or disable SSL protocols. TLS 1.2 is automatically enabled by default. If you’re using Linux, you can refer to the Red Hat guide on TLS hardening.

4. Verify That Your Server Is Properly Configured to Support SNI

It’s also possible that the SSL handshake failure is being caused by improper Server Name Indication (SNI) configuration. The SNI is what enables a web server to securely host several TLS certificates for one IP address.

Each website on a server has its own certificate. However, if the server isn’t SNI-enabled, that can result in an SSL handshake failure, because the server may not know which certificate to present.

There are a few ways to check and see whether a site requires SNI. One option is to use Qualys’ SSL Server Test, which we discussed in the previous section. Input your site’s domain name, and then click on the Submit button.

On the results page, look for a message that reads “This site works only in browsers with SNI support”:

browser sni support

The summary results page of the Qualys SSL checker tool

Another approach for detecting if a server is using SNI is to browse the server names in the ‘ClientHello’ message. This is a more technical process, but it can offer a lot of information.

It involves checking the extended hello header for a ‘server_name’ field, to see if the correct certifications are presented.

If you’re familiar with using tools such as the OpenSSL toolkit and Wireshark, you might find this method preferable. You can use openssl s_client with and without the -servername option:

# without SNI
 $ openssl s_client -connect host:port 

 # use SNI
 $ openssl s_client -connect host:port -servername host

If you get two different certificates with the same name, it means that the SNI is supported and properly configured.

However, if the output in the returned certificates is different, or the call without SNI cannot establish an SSL connection, it indicates that SNI is required but not correctly configured. Resolving this issue may require switching to a dedicated IP address.

5. Make Sure the Cipher Suites Match

If you still haven’t been able to identify the cause of the SSL handshake failure, it might be due to a cipher suite mismatch. In case you’re unfamiliar with the term, ‘cipher suites’ refer to a set of algorithms, including ones for key exchange, bulk encryption, and message authentication code, that can be used for securing SSL and TLS network connections.

If the cipher suites that a server uses don’t support or match what’s used by Cloudflare, that can result in an “SSL Handshake Failed” error.

When it comes to figuring out whether there is a cipher suite mismatch, Qualys’ SSL Server Test proves yet again to be a useful tool.

When you input your domain and click on Submit, you’ll see a summary analysis page. You can find the cipher information under the Cipher Suites section:

qualys cipher suites

The Cipher Suites section in a Qualys SSL report

You can use this page to discover which ciphers and protocols the server supports. You’ll want to look out for any that display the ‘weak’ status. In addition, this section also details the specific algorithms for the cipher suites.

To correct this issue, you can compare the results against what your browser supports by using the Qualys SSL/TLS Capabilities of Your Browser tool. For more extensive information and guidance about cipher suites, we also recommend checking out the ComodoSSLStore guide.

Confused by the ‘SSL Handshake Failed’ error message? This guide explains what it is and, most importantly, 5 ways to fix it 🙌Click to Tweet

Summary

One of the most perplexing yet common types of SSL-related problems is the “SSL Handshake Failed” error. Dealing with this error can be stressful since it has many potential causes, including both client- and server-side issues.

However, there are some reliable solutions you can use to identify the problem and resolve it. Here are five ways you can use to fix the SSL Handshake Failed error:

  1. Update your system date and time.
  2. Check to see if your SSL certificate is valid (and reissue it if necessary).
  3. Configure your browser to support the latest TLS/SSL versions.
  4. Verify that your server is properly configured to support SNI.
  5. Make sure the cipher suites match.

Get all your applications, databases and WordPress sites online and under one roof. Our feature-packed, high-performance cloud platform includes:

  • Easy setup and management in the MyKinsta dashboard
  • 24/7 expert support
  • The best Google Cloud Platform hardware and network, powered by Kubernetes for maximum scalability
  • An enterprise-level Cloudflare integration for speed and security
  • Global audience reach with up to 35 data centers and 275+ PoPs worldwide

Test it yourself with $20 off your first month of Application Hosting or Database Hosting. Explore our plans or talk to sales to find your best fit.

Я настраиваю OpenVPN 2.3.6-1 на моем сервере Arch Linux для шифрования SMB-трафика через общедоступный Интернет. Когда я проверить установку на одном из моих виртуальных машин клиентов Linux, я получаю ошибку: TLS Error: TLS handshake failed.

Я быстро прочитал ( OpenVPN на OpenVZ Ошибка TLS: не удалось выполнить квитирование TLS (Google предложил решения, не помогающие) ) и попытался переключиться с UDP по умолчанию на TCP, но это только заставило клиента многократно сообщать, что время соединения истекло. Я также попытался отключить шифрование и проверку подлинности TLS, но это привело к сбою сервера Assertion failed at crypto_openssl.c:523. В обоих случаях необходимые изменения были внесены в конфигурации клиента и сервера.

Я следовал инструкциям на ( https://wiki.archlinux.org/index.php/OpenVPN ) для настройки OpenVPN и инструкциям на ( https://wiki.archlinux.org/index.php/Create_a_Public_Key_Infrastructure_Using_the_easy-rsa_Scripts ) создавать ключи и сертификаты. Единственными отклонениями, которые я сделал из этих инструкций, было указание имен моих собственных компьютеров и соответствующих им имен файлов ключей / сертификатов.

Смотрите также мой оригинальный вопрос о защите SMB-трафика через Интернет: ( Простое шифрование для общих ресурсов Samba )

Кто-нибудь может объяснить, как я могу решить эту проблему?

Детали:

Сервер: Arch Linux (в актуальном состоянии), подключенный напрямую к шлюзу через кабель Ethernet. Нет Iptables.

Клиент: Arch Linux (в актуальном состоянии) виртуальная машина на VirtualBox 4.3.28r100309 хост Windows 8.1, мостовой сетевой адаптер. Нет Iptables. Брандмауэр Windows отключен.

Шлюз: перенаправление портов для порта 1194 включено, без ограничений брандмауэра.

Вот файлы конфигурации на сервере и клиенте соответственно. Я создал их в соответствии с инструкциями на Arch Wiki.

/etc/openvpn/server.conf (Только строки без комментариев):

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server-name.crt
key /etc/openvpn/server-name.key
dh /etc/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

/etc/openvpn/client.conf (Только строки без комментариев):

client
dev tun
proto udp
remote [my public IP here] 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client-name.crt
key /etc/openvpn/client-name.key
remote-cert-tls server
tls-auth /etc/openvpn/ta.key 1
comp-lzo
verb 3

Вот результаты работы openvpn на машинах с вышеуказанными конфигурациями. Сначала я запустил сервер, затем клиент.

Вывод openvpn /etc/openvpn/server.confна сервер:

Thu Jul 30 17:02:53 2015 OpenVPN 2.3.6 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Dec  2 2014
Thu Jul 30 17:02:53 2015 library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.09
Thu Jul 30 17:02:53 2015 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x.  Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Thu Jul 30 17:02:53 2015 Diffie-Hellman initialized with 2048 bit key
Thu Jul 30 17:02:53 2015 Control Channel Authentication: using '/etc/openvpn/ta.key' as a OpenVPN static key file
Thu Jul 30 17:02:53 2015 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 17:02:53 2015 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 17:02:53 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Thu Jul 30 17:02:53 2015 ROUTE_GATEWAY 192.168.0.1/255.255.255.0 IFACE=enp5s0 HWADDR=##:##:##:##:##:##
Thu Jul 30 17:02:53 2015 TUN/TAP device tun0 opened
Thu Jul 30 17:02:53 2015 TUN/TAP TX queue length set to 100
Thu Jul 30 17:02:53 2015 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Thu Jul 30 17:02:53 2015 /usr/bin/ip link set dev tun0 up mtu 1500
Thu Jul 30 17:02:53 2015 /usr/bin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
Thu Jul 30 17:02:53 2015 /usr/bin/ip route add 10.8.0.0/24 via 10.8.0.2
Thu Jul 30 17:02:53 2015 GID set to nobody
Thu Jul 30 17:02:53 2015 UID set to nobody
Thu Jul 30 17:02:53 2015 UDPv4 link local (bound): [undef]
Thu Jul 30 17:02:53 2015 UDPv4 link remote: [undef]
Thu Jul 30 17:02:53 2015 MULTI: multi_init called, r=256 v=256
Thu Jul 30 17:02:53 2015 IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
Thu Jul 30 17:02:53 2015 IFCONFIG POOL LIST
Thu Jul 30 17:02:53 2015 Initialization Sequence Completed

Вывод openvpn /etc/openvpn/client.confна клиента:

Thu Jul 30 21:03:02 2015 OpenVPN 2.3.6 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Dec  2 2014
Thu Jul 30 21:03:02 2015 library versions: OpenSSL 1.0.2d 9 Jul 2015, LZO 2.09
Thu Jul 30 21:03:02 2015 WARNING: file '/etc/openvpn/client-name.key' is group or others accessible
Thu Jul 30 21:03:02 2015 WARNING: file '/etc/openvpn/ta.key' is group or others accessible
Thu Jul 30 21:03:02 2015 Control Channel Authentication: using '/etc/openvpn/ta.key' as a OpenVPN static key file
Thu Jul 30 21:03:02 2015 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 21:03:02 2015 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu Jul 30 21:03:02 2015 Socket Buffers: R=[212992->131072] S=[212992->131072]
Thu Jul 30 21:03:02 2015 NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Thu Jul 30 21:03:02 2015 UDPv4 link local: [undef]
Thu Jul 30 21:03:02 2015 UDPv4 link remote: [AF_INET][my public IP here]:1194
Thu Jul 30 21:04:02 2015 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Thu Jul 30 21:04:02 2015 TLS Error: TLS handshake failed
Thu Jul 30 21:04:02 2015 SIGUSR1[soft,tls-error] received, process restarting
Thu Jul 30 21:04:02 2015 Restart pause, 2 second(s)

Интернет сделал для нас удобным находить любую необходимую информацию. Вы можете посещать веб-сайты напрямую или использовать поисковую систему, например Google, для доступа к различным типам данных. Однако бывают случаи, когда мы не можем открывать веб-страницы, и этому может быть несколько причин. В некоторых случаях это может быть связано с вашим сетевым подключением. С другой стороны, еще одна распространенная проблема, которая вызывает эту проблему, — это сбой установления связи TLS.

Теперь вы можете спросить: «Что означает рукопожатие TLS?» TLS означает Transport Layer Security, протокол шифрования. Связь по этому протоколу остается конфиденциальной и безопасной. В этом посте мы собираемся объяснить, что происходит при рукопожатии TLS. Таким образом, вы лучше поймете концепцию. Более того, мы научим вас, как исправить ошибку сбоя установления связи TLS.

Как мы все знаем, когда есть форма переговоров или приветствия между двумя людьми, мы скрепляем это рукопожатием. Точно так же, когда два сервера обмениваются данными и подтверждают друг друга, они формируют рукопожатие TLS. Во время этого процесса серверы проходят проверку. Они устанавливают шифрование при обмене ключами. После подтверждения подлинности всех деталей начнется обмен данными. Вот четыре этапа рукопожатия TLS:

  1. Указывает версию TLS, которая будет использоваться для связи.
  2. Выбор алгоритма шифрования для связи.
  3. Открытый ключ и цифровая подпись эмитента сертификата SSL будут использоваться для проверки подлинности.
  4. Будут созданы сеансовые ключи, которые затем будут обмениваться между двумя серверами.

Чтобы упростить задачу, обе стороны сначала скажут «привет». Затем сервер предоставит сертификат, который клиент проверит. После того, как будет подтверждена подлинность сертификата, начнется сеанс. Перед этим будет создан ключ, который позволит обмениваться данными между серверами.

Как исправить проблемы с рукопожатием TLS

К сожалению, если проблема связана с сервером, вы ничего не можете сделать. Например, если сертификат с сервера не может быть аутентифицирован, тогда это уже не в ваших руках. Однако, если у вас возникли проблемы с браузером, который вы используете, вы все равно можете попробовать множество обходных путей. Кроме того, если вы имеете дело с несоответствием в протоколе TLS, вы можете исправить проблему в браузере.

Сбой рукопожатия TLS может быть по разным причинам. Прежде чем пытаться решить проблему, убедитесь, что вы действительно имеете дело с ошибкой рукопожатия TLS. В большинстве случаев можно соблюдать следующие правила:

  1. Попробуйте посетить другие сайты и посмотрите, сохраняется ли проблема.
  2. Если вы используете сеть Wi-Fi, попробуйте переключиться на проводную.
  3. Попробуйте другие сетевые подключения. Например, используйте другой маршрутизатор или переключитесь на общедоступную сеть.

После того, как вы установили причину проблемы, вы можете спросить: «Следует ли мне отключить квитирование TLS в моем браузере?» Мы понимаем ваше разочарование, но не рекомендуем этого делать. В конце концов, протокол TLS — один из лучших способов обеспечить безопасный просмотр. Действительно, вы можете продолжить просмотр веб-сайта даже с недействительным сертификатом. Однако вы никогда не должны совершать с ним какие-либо операции. Например, не отправляйте учетные данные пароля и не используйте свою кредитную карту.

С другой стороны, бывают случаи, когда сбой подтверждения TLS возникает из-за проблем с вашим браузером. В этом случае вы можете решить проблему, изменив некоторые настройки в вашем браузере. Ниже мы расскажем о некоторых из лучших обходных путей.

Решение 1. Обеспечение правильного системного времени

В большинстве случаев рукопожатие TLS не удается из-за неправильных настроек системного времени. Имейте в виду, что системное время является жизненно важным фактором при проверке того, действительно ли сертификат действителен или просрочен. Итак, если время на вашем ПК не совпадает со временем на сервере, то может показаться, что сертификаты больше не действительны. Поэтому мы рекомендуем вам установить системное время на «автоматическое». Вот шаги:

  1. На клавиатуре нажмите Windows Key + I. Откроется приложение «Настройки».
  2. В приложении «Настройки» выберите «Время и язык».
  3. Перейдите на правую панель и установите переключатель в разделе «Автоматически устанавливать время» в положение «Вкл.».
  4. Перезагрузите компьютер, затем попробуйте снова зайти на сайт, чтобы убедиться, что ошибка подтверждения TLS исчезла.

Решение 2. Изменение протокола TLS в Windows 10

Возможно, проблема связана с версией TLS, которую использует ваш браузер. Стоит отметить, что в Windows 10 и более ранних версиях операционной системы централизованы настройки протокола. Вы можете получить доступ к свойствам Интернета, чтобы переключиться на другую версию TLS. Для этого следуйте этим инструкциям:

  1. Запустите диалоговое окно «Выполнить», нажав клавиши Windows + R на клавиатуре.
  2. В диалоговом окне «Выполнить» введите «inetcpl.cpl» (без кавычек), затем нажмите «ОК».
  3. В окне свойств Интернета перейдите на вкладку «Дополнительно».
  4. Прокрутите вниз, пока не дойдете до раздела «Безопасность», где вы можете добавить или удалить протоколы TLS.
  5. Если веб-сайт, к которому вы пытаетесь получить доступ, требует TLS 1.2, вам необходимо его выбрать.
  6. Нажмите «Применить» и «ОК», чтобы сохранить внесенные изменения.
  7. После изменения версии TLS попробуйте снова получить доступ к тому же веб-сайту.

Когда дело доходит до протоколов TLS, IE, Chrome и Edge используют возможности Windows. Между тем Firefox управляет собственной базой данных сертификатов и протоколами TLS. Итак, если вы хотите изменить версию TLS в Firefox, выполните следующие действия:

  1. Запустите Firefox, затем введите «about: config» (без кавычек) в адресной строке.
  2. Нажмите Enter, затем щелкните поле поиска.
  3. Введите «TLS» (без кавычек), затем найдите security.tls.version.min.
  4. Вы можете изменить это на любое из следующего:

Установите TLS 1 и 1.1, введя 1 и 2.

Включите TLS 1.2, введя 3.

Установите максимальный протокол TLS 1.3, введя 4.

Решение 3. Удаление базы данных сертификатов или профиля браузера

Браузеры хранят базу данных сертификатов. Например, профили Firefox поддерживают файл cert8.db. Есть один способ узнать, что ошибка установления связи TLS связана с локальной базой данных сертификатов. Вы можете попробовать удалить файл cert8.db в Firefox. Если ошибка исчезает при перезагрузке компьютера и браузера, значит, вы определили причину.

Для Edge за обработку сертификатов отвечает диспетчер сертификатов. Вы можете удалить сертификаты, выполнив следующие действия:

  1. Откройте Edge, затем введите в адресной строке «edge: // settings / privacy» (без кавычек).
  2. Щелкните параметр «Управление сертификатами и настройками HTTPS / SSL», затем удалите сертификаты.

Если у вас возникли проблемы с поиском базы данных сертификатов, лучше всего удалить профиль браузера. Как только вы это сделаете, вы можете снова попытаться получить доступ к веб-сайту, чтобы узнать, исчезла ли ошибка TLS.

Решение 4. Сброс настроек браузера

Если ни одно из исправлений, которыми мы поделились, не может решить проблему TLS, то последнее средство — сбросить настройки браузера. Лучший способ сделать это — удалить и переустановить браузер. Как только вы это сделаете, вы можете снова попытаться получить доступ к веб-сайту, чтобы проверить, исчезла ли ошибка TLS.

В некоторых случаях время установления связи TLS истекает, и вы не можете посетить веб-сайт. Когда это происходит, вы, естественно, спросите: «Сколько времени занимает рукопожатие TLS?» Что ж, это займет несколько секунд. Если это занимает больше минуты или двух, возможно, у вас медленное сетевое соединение. С другой стороны, также возможно, что ваш браузер перегружен расширениями, надстройками и прочим мусором.

Когда это происходит, вы должны использовать надежный очиститель нежелательной почты с ПК, например Auslogics BoostSpeed. Вы можете использовать этот инструмент, чтобы легко избавиться от ненужных файлов браузера. Более того, BoostSpeed ​​имеет функции, которые позволяют настраивать неоптимальные настройки браузера, обеспечивая плавную и быструю работу.

Какое из решений помогло вам решить проблему с подтверждением TLS?

Дайте нам знать в комментариях ниже!

Я пытаюсь подключиться к сервису, которому для авторизации требуется сертификат. Процесс заключается в том, что я отправляю службе CSR-файл. Сервис подписывает CSR и отправляет мне сертификат, который я использую для подключения.

  1. Я сгенерировал CSR с помощью следующей командной строки:

    openssl req -new -nodes -newkey rsa:2048 -keyout cert.key -out cert.csr
    
  2. Я взял содержимое cert.csr и отправил им. Они генерируют сертификат клиента, и я получил обратно файл PEM.

  3. Теперь я пытаюсь подключиться, используя их файл сертификата в SSLCERT для curl () и предоставляя закрытый ключ из cert.key как CURLOPT_SSLKEY — (который я получил на шаге 1).

  4. Не удается: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

Что я делаю не так в этом процессе?

Это работает , когда я пытаюсь использовать полученный тестовый сертификат, включающий закрытый ключ от службы (самоподписанный сертификат). Но когда я использую сертификат, который они сгенерировали из моего CSR, а затем использую мой закрытый ключ в качестве ключа, возникает ошибка с ошибкой рукопожатия.

Итак, я знаю, что это не имеет отношения к тому, что openssl / curl не поддерживает v3 / TLS и т.д., что другие при поиске решения обнаружили, что их проблема.

Вот что я бегу:

  curl -i -v --request POST https://service.com/ --cert clientcert.pem --key private_key.pem --cert-type pem --tlsv1.1 --insecure
* Connected to service.com (1xx.xxx.xxx.xx) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Request CERT (13):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS handshake, CERT verify (15):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS alert, Server hello (2):
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
* Closing connection 0

Запуск следующих версий: curl 7.35.0 (x86_64-pc-linux-gnu) libcurl / 7.35.0 OpenSSL / 1.0.1f zlib / 1.2.8 libidn / 1.28 librtmp / 2.3

3 ответа

Лучший ответ

Не однозначный ответ, но слишком много, чтобы поместиться в комментариях:

Я предполагаю, что они предоставили вам сертификат, у которого либо неправильный эмитент (хотя их сервер мог использовать для этого более конкретный код предупреждения), либо неправильная тема. Мы знаем, что сертификат совпадает с вашим частным ключом, потому что оба curl и openssl client соединили их в пару, не пожаловавшись на несоответствие; но мы на самом деле не знаем, что он соответствует их желаемому ЦС, потому что ваш curl использует openssl, а клиент openssl SSL НЕ обеспечивает соответствие настроенного сертификата клиента certreq.CAs.

Сделайте openssl x509 <clientcert.pem -noout -subject -issuer и то же самое с сертификатом из теста P12, который работает. Сделайте openssl s_client (или проверьте тот, который вы сделали) и посмотрите под Acceptable client certificate CA names; имя там или одно из них должно совпадать (точно!) с эмитентом (ами) ваших сертификатов. Если нет, то, скорее всего, это ваша проблема, и вам необходимо проверить с ними, что вы отправили CSR в правильное место и правильным способом. Возможно, у них разные режимы в разных регионах или бизнес-направлениях, или тестирование vs prod, или active vs pending и т. Д.

Если эмитент вашего сертификата совпадает с желаемым CA, сравните его тему с рабочим (test-P12): они в аналогичном формате? есть ли какие-то компоненты в рабочем, которых нет в вашем? Если они позволяют это, попробуйте сгенерировать и отправить новый CSR с именем субъекта, точно таким же, как у test-P12, или как можно более близким, и посмотрите, даст ли это сертификат, который работает лучше. (Для этого не нужно создавать новый ключ , но если вы решите, отслеживайте, какие сертификаты соответствуют каким ключам, чтобы не перепутать их.) Если это не так. Это не поможет посмотреть на расширения сертификатов с openssl x509 <cert -noout -text на предмет каких-либо различий, которые могут быть разумно связаны с авторизацией субъекта, например KeyUsage, ExtendedKeyUsage, может быть Policy, может быть Constraints, может быть, даже что-то нестандартное.

Если ничего не помогает, спросите операторов серверов, что их журналы говорят о проблеме, или, если у вас есть доступ, посмотрите журналы самостоятельно.


4

dave_thompson_085
2 Апр 2016 в 22:32

Решением для меня в системе CentOS 8 была проверка политики системной криптографии путем проверки того, что / etc / crypto-policies / config читает значение по умолчанию DEFAULT , а не любое другое значение.

После изменения этого значения на ПО УМОЛЧАНИЮ выполните следующую команду:

/usr/bin/update-crypto-policies --set DEFAULT

Повторно запустите команду curl, и она должна работать.


1

canon
24 Сен 2020 в 18:09

Какой закрытый ключ SSL следует отправить вместе с сертификатом клиента?

Никто из них :)

Одна из привлекательных особенностей клиентских сертификатов заключается в том, что они не делают глупых вещей, таких как передача секрета (например, пароля) в виде простого текста на сервер (HTTP basic_auth). Пароль по-прежнему используется для разблокировки ключа для сертификата клиента, просто он не используется напрямую во время обмена или для аутентификации клиента.

Вместо этого клиент выбирает временный случайный ключ для этого сеанса. Затем клиент подписывает временный случайный ключ своим сертификатом и отправляет его на сервер (некоторая рука отказывается). Если злоумышленник что-то перехватит, это случайно, поэтому его нельзя будет использовать в будущем. Его нельзя даже использовать для второго запуска протокола с сервером, потому что сервер также выберет новое случайное значение.


Не удается: ошибка: 14094410: подпрограммы SSL: SSL3_READ_BYTES: сбой подтверждения подтверждения sslv3

Используйте TLS 1.0 и выше; и используйте указание имени сервера.

Вы не предоставили никакого кода, поэтому мне не ясно, как сказать вам, что делать. Вместо этого вот командная строка OpenSSL для проверки:

openssl s_client -connect www.example.com:443 -tls1 -servername www.example.com 
    -cert mycert.pem -key mykey.pem -CAfile <certificate-authority-for-service>.pem

Вы также можете использовать -CAfile, чтобы избежать «ошибки проверки: num = 20» . См., Например, «проверить ошибку: num = 20» при подключении к gateway.sandbox.push.apple.com.


5

Community
23 Май 2017 в 11:46

Не устанавливается jre 18.0.1.1-1 в pamac из AUR.

Manjaro MATE: Не устанавливается jre 18.0.1.1-1
Почему-то он даже и не начинает собираться.

Подготовка...
Синхронизация баз данных пакетов...
Проверка зависимостей для jre...
Разрешение зависимостей...
Проверка на взаимные конфликты...

Сборка jdk...
==> Сборка пакета jdk 18.0.1-1 (Вт 07 июн 2022 09:40:27)
==> Проверка зависимостей для запуска...
==> Проверка зависимостей для сборки...
==> Получение исходных файлов...
  -> Найден jdk-18.0.1_linux-x64_bin.tar.gz
  -> Найден jdk-18.0.1_doc-all.zip
  -> Найден jdk-18_doc-license.html
  -> Найден java.desktop
  -> Найден jconsole.desktop
  -> Найден jshell.desktop
  -> Найден java_16.png
  -> Найден java_48.png
  -> Найден LICENSE
==> Проверка файлов source с использованием sha256sums...
    jdk-18.0.1_linux-x64_bin.tar.gz ... Готово
    jdk-18.0.1_doc-all.zip ... Готово
    jdk-18_doc-license.html ... Готово
    java.desktop ... Готово
    jconsole.desktop ... Готово
    jshell.desktop ... Готово
    java_16.png ... Готово
    java_48.png ... Готово
    LICENSE ... Готово
==> Удаление директории '$srcdir/'...
==> Распаковка исходных файлов...
  -> Распаковка 'jdk-18.0.1_linux-x64_bin.tar.gz' с помощью bsdtar
==> Запускается prepare()...
==> Вход в окружение fakeroot...
==> Запускается package_jre()...
==> Очистка...
  -> Удаление файлов libtool...
  -> Удаление ненужных файлов...
  -> Удаление статических библиотек...
  -> Удаление отладочной информации из бинарников и библиотек...
  -> Сжатие документации (man и info)...
==> Проверка сборки на ошибки...
==> Создание пакета "jre"...
  -> Создание файла '.PKGINFO'...
  -> Создание файла '.BUILDINFO'...
  -> Добавление файла 'install'...
  -> Создание файла '.MTREE'...
  -> Сжатие пакета...
==> Запускается package_jdk()...
==> Очистка...
  -> Удаление файлов libtool...
  -> Удаление ненужных файлов...
  -> Удаление статических библиотек...
  -> Удаление отладочной информации из бинарников и библиотек...
  -> Сжатие документации (man и info)...
==> Проверка сборки на ошибки...
==> Создание пакета "jdk"...
  -> Создание файла '.PKGINFO'...
  -> Создание файла '.BUILDINFO'...
  -> Добавление файла 'install'...
  -> Создание файла '.MTREE'...
  -> Сжатие пакета...
==> Запускается package_jdk-doc()...
==> Очистка...
  -> Удаление файлов libtool...
  -> Удаление ненужных файлов...
  -> Удаление статических библиотек...
  -> Удаление отладочной информации из бинарников и библиотек...
  -> Сжатие документации (man и info)...
==> Проверка сборки на ошибки...
==> Создание пакета "jdk-doc"...
  -> Создание файла '.PKGINFO'...
  -> Создание файла '.BUILDINFO'...
  -> Создание файла '.MTREE'...
  -> Сжатие пакета...
==> Выход из окружения fakeroot.
==> Завершена сборка пакета jdk 18.0.1-1 (Вт 07 июн 2022 09:44:04)
==> Очистка...

Проверка связки ключей...
Проверка целостности...
Загрузка файлов пакетов...
Проверка файлов на конфликты ...
Проверка доступного дискового пространства...
Переустановка jre (18.0.1-1)...
Транзакция успешно завершена.

Manjaro MATE: Не устанавливается jre 18.0.1.1-1

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

  • Ошибка выполнения величина или алгоритм не описаны 4113
  • Ошибка выполнения квитирования связи tls an unexpected tls packet was received
  • Ошибка выполнения vbs script разрешение отклонено
  • Ошибка выполнения имя не объявлено кумир что делать
  • Ошибка выполнения opc при записи диска