So verknüpfen Sie Python mit dem manuell kompilierten OpenSSL anstelle des systemeigenen

So verknüpfen Sie Python mit dem manuell kompilierten OpenSSL anstelle des systemeigenen

Ich muss OpenSSL manuell aus dem Quellcode kompilieren. Ich verwende Ubuntu 18. Das mit Ubuntu 18 gelieferte OpenSSL unterstützt die von mir benötigte spezielle Verschlüsselung nicht. Es kann jedoch aktiviert werden, wenn ich OpenSSL manuell kompiliere. Ich habe Folgendes gefundenHandbuch. Wie kann ich jedoch Python-SSL verknüpfen, um das manuell installierte OpenSSL zu verwenden und nicht das des Betriebssystems?

Antwort1

Sie können die vorhandene Python-Installation nicht erneut verknüpfen und müssen eine andere Python-Distribution aus dem Quellcode erstellen. Beim Erstellen von Python müssen Sie die Variablen CPPFLAGS, LDFLAGSund LD_LIBRARY_PATHenv anpassen. Angenommen, Sie haben das benutzerdefinierte OpenSSL in installiert /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

Jetzt verwendet Python /path/to/custom/python/das benutzerdefinierte OpenSSL:

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

verwandte Informationen