Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

Certificados SSL

Introducción

It is often desired to use SSL connections for communications to avoid "man in the middle" attacks. Godot has a connection wrapper, StreamPeerTLS, which can take a regular connection and add security around it. The HTTPClient class also supports HTTPS by using this same wrapper.

Godot incluye un certificado SSL de Mozilla, pero puedes especificar un archivo .crt en los ajustes del proyecto:

../../_images/ssl_certs.png

Este archivo puede contener cualquier número de certificados públicos en formato PEM.

Por supuesto, recuerda añadir .crt como filtro para que el exportador lo reconozca al exportar tu proyecto.

../../_images/add_crt.png

Hay dos formas de obtener certificados:

Enfoque 1: certificado autofirmado

El primer enfoque es el más simple: genera un par de claves privadas y públicas, y pon el par público en el archivo.crt (en formato PEM). La clave privada debe ir a tu servidor.

OpenSSL tiene algo de documentación sobre esto. Este enfoque también no requiere validación de dominio ni requiere que tu gastes una cantidad considerable de dinero en la compra de certificados de una CA.

Enfoque 2: certificado CA

El segundo enfoque consiste en utilizar una autoridad de certificación (CA) como Verisign, Geotrust, etc. Este es un proceso más engorroso, pero es más "oficial" y asegura que tu identidad está claramente representada.

A menos que estés trabajando con grandes empresas o corporaciones, o necesites conectarte a los servidores de otra persona (es decir, conectarte a Google o a algún otro proveedor de REST API a través de HTTPS), este método no es tan útil.

Además, cuando se utiliza un certificado emitido por CA, debes habilitar la validación de dominio, para asegurarte de que el dominio al que te estás conectando es el deseado, de lo contrario cualquier sitio web puede emitir cualquier certificado en la misma CA y funcionará.

Si estás usando Linux, puedes usar el archivo certs suministrado, generalmente ubicado en:

/etc/ssl/certs/ca-certificates.crt

Este archivo permite conexiones HTTPS a prácticamente cualquier sitio web (por ejemplo, Google, Microsoft, etc.).

O elije cualquiera de los certificados más específicos si te estás conectando a uno específico.