Is it necessary to have a certificate when we use TLS When we say a communication is secured by the latest version of TLS, can we say that Man-in-the-Middle attack is not possible? Do not consider the situations that we can down grade the communication protocol. With TLS, is it necessary the have certificate for the server?
If the TLS communication is properly secured then a middle attack is not practically possible. Properly secured includes authentication of the server in order to make sure that one is talking  to (and exchanging the keys with) the expected server and not to some man in the middle attacker. There are various ways to authenticate the server, like certificates or pre-shared keys (PSK). Certificates within a public key infrastructure are the most used method though since they scale best with large setups (like the internet).