![openssl: локальная установка вызвала проблему с сертификатом](https://rvso.com/image/169422/openssl%3A%20%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0%20%D0%B2%D1%8B%D0%B7%D0%B2%D0%B0%D0%BB%D0%B0%20%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%83%20%D1%81%20%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%BC.png)
Чтобы установить Python из исходного кода без прав root, мне пришлось установить openssl
, что я и сделал с помощью следующих команд:
wget https://www.openssl.org/source/openssl-1.1.1e.tar.gz
tar -xzvf openssl-1.1.1e.tar.gz
cd openssl-1.1.1e
./config --prefix=${HOME}/.local/openssl --openssldir=${HOME}/.local/openssl
make -j$(nproc)
make install_sw
Затем я установил следующее ~/.bashrc
:
export PATH=$HOME/.local/openssl/bin:$PATH
export LD_LIBRARY_PATH=$HOME/.local/openssl/lib:$LD_LIBRARY_PATH
После этого я больше не смогу пользоваться wget
как раньше:
ERROR: cannot verify github.com's certificate, issued by ‘CN=DigiCert SHA2 Extended Validation Server CA,OU=www.digicert.com,O=DigiCert Inc,C=US’:
Unable to locally verify the issuer's authority.
To connect to github.com insecurely, use `--no-check-certificate'.
И похоже, что любое соединение, требующее сертификата, потерпит неудачу.
Мой вопрос заключается в том, как сделать так, чтобы индивидуальная локальная установка openssl
работ была безупречной (может быть, импортировав существующие сертификаты и поместив их в нужное место?).
Заранее большое спасибо за вашу помощь!
решение1
./config --prefix=${HOME}/.local/openssl --openssldir=${HOME}/.local/openssl
--openssldir
указывает каталог для файлов конфигурации openssl, который также является каталогом, где он ищет сертификаты CA по умолчанию. Таким образом, вам следует либо повторно использовать существующий OPENSSLDIR в вашей системе, создав ${HOME}/.local/openssl
на него символическую ссылку, либо скопировать системные сертификаты CA в новый каталог из системного. OPENSSLDIR для установки openssl по умолчанию в вашей системе зависит от вашей (неизвестной) системы, но это может быть что-то вроде /usr/lib/ssl
.