En TLS, se requiere que el servidor tenga una clave privada y un certificado (a veces conocido como certificado de servidor). El certificado del servidor identifica y autentica el servidor. Opcionalmente, el cliente también puede tener su propia clave privada y certificado (generalmente denominado certificado de cliente). Si se utiliza un certificado de cliente, identifica y autentica al cliente.
En la web, con HTTPS, generalmente el servidor tiene un certificado de servidor, pero no se usan certificados de cliente. Esto significa que el cliente puede autenticar con qué servidor está hablando, pero el servidor no puede autenticar qué cliente se está conectando a él.
Sin embargo, en muchos contextos programáticos, normalmente querrá que ambos puntos finales se autentiquen entre sí. Por lo tanto, deseará utilizar certificados de servidor y certificados de cliente.
En TLS, todos los certificados son certificados X.509. X.509 es solo el formato de los datos.
Los certificados incluyen una clave pública y una firma de una autoridad de certificación (CA). En la web, normalmente los sitios web tienen un certificado de servidor emitido (firmado) por Verisign o alguna otra CA conocida. Los navegadores web incluyen una lista de casi 100 CA diferentes, los sitios web preinstalados y más utilizados tienen un certificado de servidor emitido por una de esas CA. Por ejemplo, Verisign es una de las CA en la lista estándar de CA de cada navegador. Verisign le cobra dinero, si desea que le emitan un certificado.
La alternativa a obtener su certificado firmado por una CA estándar es que puede usar un certificado autofirmado: un certificado que se emite, no por una de las CA estándar, sino por usted mismo (o cualquier persona que desee). Esto no se usa demasiado en la web, porque los certificados de servidores autofirmados hacen que los navegadores muestren cuadros de diálogo de advertencia al usuario, que la mayoría de los sitios web intentan evitar. Sin embargo, para usos programáticos, los certificados autofirmados pueden funcionar bien. Y si usa certificados autofirmados, no tiene que pagar dinero de Verisign. Puede encontrar tutoriales sobre cómo utilizar las herramientas de línea de comandos de OpenSSL para crear sus propios certificados autofirmados.
SSL es un sinónimo de TLS. (Técnicamente, SSL es el nombre que se usó con varias versiones anteriores del estándar, y TLS es un nombre nuevo para varias versiones más recientes de los estándares. Sin embargo, muchas personas usan los dos términos indistintamente.)
Le recomiendo que lea el artículo de Wikipedia sobre el certificado de clave pública para obtener información más útil.