My question is: Can a custom version of OpenSSL be built which disables TLSv1 and particular ciphers, which is then installed system wide and used by Apache and Ngnix, and any applications that need OpenSSL on the system?
Se eu estou entendendo sua pergunta corretamente, você deseja desabilitar o TLSv1 em tempo de compilação, então openssl não suportará o protocolo. Se é isso que você procura, há duas opções que se aplicam, e essa é a descrição oficial :
no-<prot>
Don't build support for negotiating the specified SSL/TLS
protocol (one of ssl, ssl3, tls, tls1, tls1_1, tls1_2,
tls1_3, dtls, dtls1 or dtls1_2). If "no-tls" is selected then
all of tls1, tls1_1, tls1_2 and tls1_3 are disabled.
Similarly "no-dtls" will disable dtls1 and dtls1_2. The
"no-ssl" option is synonymous with "no-ssl3". Note this only
affects version negotiation. OpenSSL will still provide the
methods for applications to explicitly select the individual
protocol versions.
no-<prot>-method
As for no-<prot> but in addition do not build the methods for
applications to explicitly select individual protocol
versions. Note that there is no "no-tls1_3-method" option
because there is no application method for TLSv1.3. Using
individual protocol methods directly is deprecated.
Applications should use TLS_method() instead.
Você deve prestar atenção à nota final na bandeira no-tls , que afirma que afeta apenas a negociação.