システムの OpenSSL ではなく手動でコンパイルされた OpenSSL に Python をリンクする方法

システムの OpenSSL ではなく手動でコンパイルされた OpenSSL に Python をリンクする方法

OpenSSLをソースから手動でコンパイルする必要があります。Ubuntu 18を使用しています。Ubuntu 18に同梱されているOpenSSLは、必要な特定の暗号をサポートしていません。しかし、OpenSSLを手動でコンパイルすれば有効にすることができます。私はこれを見つけましたマニュアルただし、OS のものではなく手動でインストールされた OpenSSL を取得するために、python ssl をリンクするにはどうすればよいでしょうか?

答え1

既存の Python インストールを再リンクすることはできず、ソースから別の Python ディストリビューションをビルドする必要があります。Python をビルドするときは、、および env 変数を適応させる必要がありますCPPFLAGSLDFLAGSカスタムLD_LIBRARY_PATHOpenSSL を にインストールしたと仮定します/path/to/openssl

$ cd /path/with/Python/sources/unpacked/
$ export LDFLAGS="-L/path/to/openssl/lib/ -L/path/to/openssl/lib64/"
$ export LD_LIBRARY_PATH="/path/to/openssl/lib/:/path/to/openssl/lib64/"
$ export CPPFLAGS="-I/path/to/openssl/include -I/path/to/openssl/include/openssl"
$ ./configure --prefix=/path/to/custom/python/
$ make
$ make install

これで、Python は/path/to/custom/python/カスタム OpenSSL を使用するようになります。

$ /path/to/custom/python/bin/python -c "import ssl; print(ssl.OPENSSL_VERSION)"
OpenSSL 1.1.0h  27 Mar 2018

関連情報