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

373
user9371654

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

2

1 ответ на вопрос

1
hoefling

Вы не можете связать существующую установку 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