要在没有 root 权限的情况下从源代码安装 Python,我必须安装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 证书从系统目录复制到新目录中。系统上默认 openssl 安装的 OPENSSLDIR 取决于您的(未知)系统,但它可能类似于/usr/lib/ssl
.