migrating from OpsenSSL 1.1.1t to 3.0.10
Matthias Apitz
guru at unixarea.de
Mon Sep 11 09:43:13 UTC 2023
Hello,
We have a lot of own C/C++ written servers, compiled and linked against
libcrypto.1.1 and libssl.1.1:
# ls -l /usr/local/sisis-pap/lib/libssl* /usr/local/sisis-pap/lib/libcry*
-rw-r--r-- 1 bin bin 5072394 Jun 16 09:02 /usr/local/sisis-pap/lib/libcrypto.a
lrwxrwxrwx 1 root root 16 Jun 16 09:08 /usr/local/sisis-pap/lib/libcrypto.so -> libcrypto.so.1.1
-rwxr-xr-x 1 bin bin 3002744 Jun 16 09:08 /usr/local/sisis-pap/lib/libcrypto.so.1.1
-rw-r--r-- 1 bin bin 1029426 Jun 16 09:02 /usr/local/sisis-pap/lib/libssl.a
lrwxrwxrwx 1 root root 13 Jun 16 09:08 /usr/local/sisis-pap/lib/libssl.so -> libssl.so.1.1
-rwxr-xr-x 1 bin bin 697248 Jun 16 09:08 /usr/local/sisis-pap/lib/libssl.so.1.1
These servers are our own application servers, but also for example the
PostgreSQL server (also compiled from source).
So far so good.
Now with the announced EOL of 1.1.1 I compiled OpenSSL 3.0.10 which gave
in a new target directoy the following libs:
# ls -l /usr/local/sisis-pap-ssl30/lib/libssl* /usr/local/sisis-pap-ssl30/lib/libcry*
-rw-r--r-- 1 root root 8975888 Sep 11 08:38 /usr/local/sisis-pap-ssl30/lib/libcrypto.a
lrwxrwxrwx 1 root root 14 Sep 11 08:38 /usr/local/sisis-pap-ssl30/lib/libcrypto.so -> libcrypto.so.3
-rwxr-xr-x 1 root root 4962368 Sep 11 08:38 /usr/local/sisis-pap-ssl30/lib/libcrypto.so.3
-rw-r--r-- 1 root root 1253636 Sep 11 08:38 /usr/local/sisis-pap-ssl30/lib/libssl.a
lrwxrwxrwx 1 root root 11 Sep 11 08:38 /usr/local/sisis-pap-ssl30/lib/libssl.so -> libssl.so.3
-rwxr-xr-x 1 root root 803008 Sep 11 08:38 /usr/local/sisis-pap-ssl30/lib/libssl.so.3
To make the existing servers happy, it does not help to change the
LD_LIBRARY_PATH to get the 3.0.10 libs in front of the old 1.1.1t libs
and also making sym links like:
lrwxrwxrwx 1 root root 45 Sep 11 11:11 /usr/local/sisis-pap-ssl30/lib/libcrypto.so.1.1 -> /usr/local/sisis-pap-ssl30/lib/libcrypto.so.3
lrwxrwxrwx 1 root root 42 Sep 11 11:12 /usr/local/sisis-pap-ssl30/lib/libssl.so.1.1 -> /usr/local/sisis-pap-ssl30/lib/libssl.so.3
will not help, because the server (here the PostgreSQL server) is
missing old symbols in the new 3.0.10 shared libs:
# /etc/init.d/postgres.ssl30 start
/usr/local/sisis-pap/pgsql-15.1/bin/postmaster: /usr/local/sisis-pap-ssl30/lib/libssl.so.1.1: version `OPENSSL_1_1_0' not found (required by /usr/local/sisis-pap/pgsql-15.1/bin/postmaster)
/usr/local/sisis-pap/pgsql-15.1/bin/postmaster: /usr/local/sisis-pap-ssl30/lib/libcrypto.so.1.1: version `OPENSSL_1_1_0' not found (required by /usr/local/sisis-pap/pgsql-15.1/bin/postmaster)
libssl.so.1.1 => /usr/local/sisis-pap-ssl30/lib/libssl.so.1.1 (0x00007fb9b5046000)
libcrypto.so.1.1 => /usr/local/sisis-pap-ssl30/lib/libcrypto.so.1.1 (0x00007fb9b4c2f000)
Starting PostgreSQL: su: cannot open session: Module is unknown
This matches what is expressed in the migration guide:
https://www.openssl.org/docs/man3.1/man7/migration_guide.html
...
OpenSSL 3.0 is a major release and consequently any application that
currently uses an older version of OpenSSL will at the very least need
to be recompiled in order to work with the new version.
...
Thanks
matthias
--
Matthias Apitz, ✉ guru at unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
More information about the openssl-users
mailing list