I have a server with a self-signed certificate server.crt that the client trusts by adding the self-created authority to his browser's trusted authorities. Now, upon connecting to the server's IP address through https://, the browser will say the connection is secure as the certificate shown is trusted. But how can the client be sure that the certificate that was shown is actually this specific self-signed server.crt, and not another certificate that was for example signed by Verisign?
Maybe my question comes down to this: How easy is it for an attacker to get a signature from the other (standard) trusted authorities in a browser?
Of course the client can always check manually in his browser which certificate was actually shown, but this seems like a step that shouldn't have to be done every time he connects to the server.