На Apple Mac под управлением Mojave (10.14.3, но ошибка возникла после обновления до Mojave) я регулярно (но случайным образом) получаю ошибки SSL при попытке подключения с помощью CURL в командной строке, например:
curl -vvvvv https://bbc.co.uk
* Rebuilt URL to: https://bbc.co.uk/
* Trying 151.101.192.81...
* TCP_NODELAY set
* Connected to bbc.co.uk (127.0.0.1) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /usr/local/etc/openssl/cert.pem
CApath: /usr/local/etc/openssl/certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to bbc.co.uk:443
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to bbc.co.uk:443
та же ошибка возникает при любом https-вызове
curl https://google.co.uk
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to google.co.uk:443
Перезагрузка всегда исправляет это, но не всегда удобно. Кто-нибудь сталкивался с этим и есть решение?
Это (очевидно) останавливает работу таких команд, как brew и git и т. д.
Я попробовал запустить:
security verify-cert -L -c /etc/ssl/cert.pem
Cert Verify Result: CSSMERR_TP_CERT_EXPIRED
во время бега:
security verify-cert -L -c /usr/local/etc/openssl/cert.pem
...certificate verification successful.
поэтому отошел /etc/ssl/cert.pem
и попытался создать на него символическую ссылку, /usr/local/etc/openssl/cert.pem
но все равно безрезультатно.
Другая информация:
openssl version
OpenSSL 1.0.2p 14 Aug 2018
which openssl
/usr/local/opt/openssl/bin/openssl
Я также попробовал:
networksetup -setv6off Wi-Fi
с помощью wget:
wget https://google.co.uk
--2019-03-26 10:35:10-- https://google.co.uk/
Resolving google.co.uk... 216.58.201.35
Connecting to google.co.uk|216.58.201.35|:443... connected.
Unable to establish SSL connection.
но это тоже не имело значения. Веб-браузер работает нормально, так что https проходит через сеть нормально.
Другие примечания: у меня установлен Kaspersky Internet Security (KIS) (который не может открыть настройки, предположительно, потому что не может выполнить какой-то вызов SSL в фоновом режиме), KIS настроен так, чтобы не сканировать https-соединения (или как там это настроено). Я также запускаю MAMP, и когда скрипты php пытаются связаться с внешними серверами (вызовы API и т. д.), они все не могут подключиться, предположительно из-за той же ошибки openssl?
Полагаю, необходимо перезапустить какую-то сетевую службу, но я больше системный администратор Ubuntu, чем MacOS, поэтому не знаю команд.
помощь??!?? :-)
РЕДАКТИРОВАТЬ: Я заметил строку:
* Connected to bbc.co.uk (127.0.0.1) port 443 (#0)
выше, что явно странно, так как он не должен пытаться подключиться к локальному хосту, поэтому по наитию я отключил KIS, и тогда он заработал!!! (Я пробовал просто отключить безопасность, но это не помогло) Счастливых дней!
Но теперь, если я попытаюсь перезапустить KIS, он не запустится должным образом (просто зависнет с сообщением «запуск...» в середине окна). Так что я, возможно, просто удалю KIS и поищу альтернативу. :-(
решение1
Попробуйте закрыть kaspersky, как предлагалось в комментарии выше. Или вы можете попробовать отключить перехват SSL, следуя этому руководству, найденному на форумах Kaspersky.
Откройте Kaspersky Internet Security
Идти к
Настройки -> Дополнительные -> Сеть -> Не сканировать зашифрованные соединения.
Перезагрузить
решение2
аналогичная ситуация, macbook pro, проблема с Kaspersky Internet Security. После завершения процесса все работает.