In SSL/TLS, is the CipherSuite chosen by the server or the client? Also, can the certificate in any way dictate or modify the CipherSuite?
The client sends a list of cipher suites that it supports. The server then chooses the cipher suite that will be used, among those sent by the client. So the server chooses the cipher suite, within the constraints of what the client supports (or is willing to admit that it supports).
Also, the list of supported cipher suite sent by the client is supposed to be ordered by preference; a courteous server should select the suite most preferred by the client, among the set of suites that both client and server support. Not all SSL/TLS servers are courteous.
The certificate impacts the choice. For instance, cipher suites "TLS_RSA_*" assume that the server's public key is of type RSA, and suitable for encryption; they cannot be used if the server's key is not a RSA key, or if the extensions within the certificate (i.e. the "Key Usage" extension) forbid encryption-based key exchange (e.g. a signature-only certificate).