I am coding an SSL server in C + OpenSSL. This is pretty straightforward, and there are lots of examples to follow.
However, I need to interoperate with a broad range of legacy clients, some of which are really old, and have a variety of bugs which prevent SSL negotiation from working. Reaching the users of these clients to have them upgrade is impractical at best.
SSL_CTX_set_options(ctx, SSL_OP_ALL);
... helps, but there are still clients that can't establish an SSL connection.
What other measures can I take to make OpenSSL as interoperable as possible?
(An example problematic client is Kermit95 on Windows -- compiled in 2003, I believe, with a libssleay.dll in the install directory. Although the Kermit95 source is free now, even the maintainer doesn't know how to build it on Windows!)
There are a number of things I know of that increase the interoperability of openSSL.
Basic answer - compile your own openSSL!