Per rispondere a questa domanda, ritengo importante esaminare la definizione di ciò che è un cliente in base alle specifiche. Nel Glossario un cliente è definito come
The application entity that initiates a TLS connection to a
server. This may or may not imply that the client initiated the
underlying transport connection. The primary operational
difference between the server and client is that the server is
generally authenticated, while the client is only optionally
authenticated.
Ciò significa che i server devono sempre essere autenticati e quindi i server non autenticati (o i server anonimi) non possono chiedere l'autenticazione del client. In altre parole, poiché il client sta iniziando la connessione TLS, il server dovrebbe autenticarsi sul client prima di autenticare il client. Penso che la lingua possa essere più chiara, quindi non c'è ambiguità.
Nel tuo commento hai menzionato l'inversione dei ruoli, quindi il server TCP diventa il client TLS e il client TCP diventa il server TLS. Questo è possibile usando una programmazione intelligente a livello di socket. Dai un'occhiata a STARTTLS che può essere utilizzato per aggiornare una connessione semplice a una connessione TLS in un modo standard. Netty è una libreria Java che fornisce un'implementazione di StartTLS .