Как связать Python с OpenSSL, скомпилированным вручную, а не с системным

Как связать Python с OpenSSL, скомпилированным вручную, а не с системным

Мне нужно вручную скомпилировать OpenSSL из исходников. Я использую Ubuntu 18. OpenSSL, поставляемый с Ubuntu 18, не поддерживает нужный мне шифр. Но его можно включить, если я вручную скомпилирую OpenSSL. Я нашел эторуководство. Однако как мне связать Python SSL с установленным вручную OpenSSL, а не с ОС?

решение1

Вы не можете повторно связать существующую установку Python и вам нужно собрать другой дистрибутив Python из исходников. При сборке Python вам нужно адаптировать переменные CPPFLAGS, LDFLAGSи LD_LIBRARY_PATHenv. Предположим, что вы установили пользовательский OpenSSL в /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

Связанный контент