Sorry if I stomp in here, I just by coincidence ran into this problem when trying an older program of mine on BigSur. Another thing to mention is that the piece of software is for internal company use only, so the number of installations is quite limited (1), and I have full control of the OS version in use.
I resolved the issue by installing OpenSSL via Macports (which, btw, already gave me more deprecated software like gdb(ggdb), svn and now openssl). I listed the installed files and found that it puts copies of libssl.dylib and libcrypto.dylib into the /opt/local/lib directory. I have afterwards patched ssl_openssl_lib from the synapse package:
{$IFDEF DARWIN}
DLLSSLName: string = '/opt/local/lib/libssl.dylib';
DLLUtilName: string = '/opt/local/lib/libcrypto.dylib';
{$ELSE}
and my program compiles und runs like before. What I really like is the absence of any version number in the file name. What I see does, however, not fit with what you were writing about. Maybe because there are different SSL distributions (OpenSSL vs LibreSSL)?
Anyway, I what do you think about this approach? Can I tick "problem solved" on my todo list, or did I just set vectors for the next desaster?
Thnx, Armin.