В связи с вчерашней проблемой, связанной с устареванием корневого сертификата и криворукостью некоторых, куча народу столкнулась с тем, что перестали работать утилиты вроде curl или стало нельзя зайти на некоторые сайты.
Для Linux решение уже и так есть по ссылке выше, для прочих программистов описываю решение здесь.
Если у вас curl сейчас выдаёт такое при запросе к любому сайту с SSL:
Для начала проверяем что у нас используется:
Нужно заменить LibreSSL на OpenSSL где этой проблемы нет, поскольку там правильно реализована проверка сертификатов.
Для начала считаем, что скорее всего brew у вас уже стоит. :)
Далее запускаем новый шелл и проверяем:
Для Linux решение уже и так есть по ссылке выше, для прочих программистов описываю решение здесь.
Если у вас curl сейчас выдаёт такое при запросе к любому сайту с SSL:
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
Для начала проверяем что у нас используется:
openssl version -a
LibreSSL 2.6.5
built on: date not available
platform: information not available
options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx)
compiler: information not available
OPENSSLDIR: "/private/etc/ssl"
Нужно заменить LibreSSL на OpenSSL где этой проблемы нет, поскольку там правильно реализована проверка сертификатов.
Для начала считаем, что скорее всего brew у вас уже стоит. :)
brew update && brew upgrade # на всякий, многие забывают обновляться
brew install openssl # это если у вас вдруг его нет
brew link --force openssl
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"
echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc # любители Bash и так знают что делать
Далее запускаем новый шелл и проверяем:
openssl version -a
OpenSSL 1.1.1g 21 Apr 2020
built on: Tue Apr 21 13:28:37 2020 UTC
platform: darwin64-x86_64-cc
options: bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr)
compiler: clang -fPIC -arch x86_64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -D_REENTRANT -DNDEBUG
OPENSSLDIR: "/usr/local/etc/openssl@1.1"
ENGINESDIR: "/usr/local/Cellar/openssl@1.1/1.1.1g/lib/engines-1.1"