JDBC: cómo conectar a PostgreSQL (Java, .pk8)
Cómo conectar a PostgreSQL con JDBC en Square Cloud
Este tutorial te guiará por los pasos para conectarte a una base de datos PostgreSQL usando JDBC (Java Database Connectivity). JDBC es una API de Java que permite conectar y ejecutar consultas en bases de datos.
Requisitos previos
Antes de empezar, asegúrate de haber creado una base de datos en Square Cloud y de haberte conectado a algún cliente de gestión, como DBeaver, para efectuar la creación de tu estructura de datos.

Pasos para conectar a PostgreSQL con JDBC
1. Obtén los detalles de conexión de tu PostgreSQL
Para conectar tu aplicación Java a la base de datos PostgreSQL, necesitas obtener tus credenciales de acceso:
- String de conexión: La URL utilizada para conectarte a tu base de datos PostgreSQL.
- Certificados: Los archivos
.crty.key.

Puedes encontrar estos detalles en el panel de Square Cloud, en la sección Databases. Haz clic en tu base de datos PostgreSQL para visualizar los detalles y, a continuación, accede a la pestaña Configuration para encontrar la string de conexión.
Nota: Si no copiaste la contraseña en el momento en que creaste la base, necesitarás regenerar la contraseña en el panel y pegarla en la URL.
2. Crea el archivo .pk8
El driver JDBC exige que el certificado de clave SSL esté en un formato específico: un archivo .pk8. Puedes crear este archivo utilizando la utilidad OpenSSL.
Para convertir el archivo .key descargado del panel al formato .pk8, ejecuta el siguiente comando en tu terminal:
openssl pkcs8 -topk8 -inform PEM -in ruta/al/private-key.key -outform DER -out ruta/de/salida/private-key.pk8 -nocryptRecuerda sustituir ruta/al/private-key.key y ruta/de/salida/private-key.pk8 por las rutas reales de tu sistema. Guarda el archivo private-key.pk8 generado en una carpeta junto con los otros certificados necesarios (por ejemplo, en una carpeta llamada certs).
3. Actualiza la DATABASE_URL
Java no lee el .env por sí solo. Define DATABASE_URL en Configuraciones > Variables de Entorno de la aplicación, léela con System.getenv("DATABASE_URL") e incluye la carpeta certs en el zip del deploy. JDBC no acepta usuario:contraseña@host: pasa usuario y contraseña como parámetros. El ca-certificate.crt descargado sirve como raíz y como certificado del cliente, y la clave private-key.key convertida pasa a ser el .pk8. La estructura final debe parecerse a esto:
DATABASE_URL="jdbc:postgresql://HOST:PORT/DATABASE?user=squarecloud&password=CONTRASENA&sslmode=require&sslrootcert=certs/ca-certificate.crt&sslcert=certs/ca-certificate.crt&sslkey=certs/private-key.pk8"Actualizado el: 04/10/2026
¡Gracias!
