Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSL/TLS Support for Database Connections #2206

Open
AbdRaqeeb opened this issue Oct 4, 2024 · 3 comments
Open

SSL/TLS Support for Database Connections #2206

AbdRaqeeb opened this issue Oct 4, 2024 · 3 comments
Labels
Milestone

Comments

@AbdRaqeeb
Copy link

Summary

Is there a plan to add SSL/TLS support for database connections in Shlink? SSL has already been implemented for other connections like Redis and RabbitMQ.

Use case

  • Improved security: This will help with running Shlink in cloud or distributed environments, encrypted connections would provide an additional layer of security.
  • Compliance with company policies: Some organizations, including ours, have policies that mandate encrypted database connections for all applications.
@acelaya
Copy link
Member

acelaya commented Oct 5, 2024

What have you tried so far, and what errors did you face when using a database behind an SSL/TLS connection?

@AbdRaqeeb
Copy link
Author

What I've Tried So Far

  1. Docker Compose Configuration:
    I've set up a Docker Compose file to create the Shlink container with TLS enabled. Here's the relevant part of my docker-compose.yml:
services:
  shlink:
    image: shlinkio/shlink:stable
    container_name: shlink
    restart: always
    environment:
      - API_KEY={{api_key}}
      - DEFAULT_DOMAIN=localhost:80
      - IS_HTTPS_ENABLED=false
      - GEOLITE_LICENSE_KEY={{key}}
      - DB_DRIVER=mysql
      - DB_USER={{username}}
      - DB_NAME=shlink
      - DB_PASSWORD={{password}}
      - DB_HOST=host.docker.internal
      - DB_PORT=3306
      - SHELL_VERBOSITY=3
    ports:
      - 80:8080
    extra_hosts:
      - "host.docker.internal:host-gateway"
  1. Database Configuration: The database is hosted externally and requires a TLS connection.

Errors Encountered
When Shlink attempts to connect to the database, I see the following error in the Docker logs:

shlink  | Initializing database if needed... [Running "/usr/local/bin/php bin/cli db:create"]   RUN  '/usr/local/bin/php' 'bin/cli' 'db:create'
shlink  |   ERR
shlink  |   ERR  In ExceptionConverter.php line 91:
shlink  |   ERR
shlink  |   ERR    [Doctrine\DBAL\Exception\DriverException (3159)]
shlink  |   ERR    An exception occurred in the driver: SQLSTATE[HY000] [3159] Connections usi
shlink  |   ERR    ng insecure transport are prohibited while --require_secure_transport=ON.
shlink  |   ERR
shlink  |   ERR
shlink  |   ERR  Exception trace:
shlink  |   ERR    at /etc/shlink/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php:91
shlink  |   ERR   Doctrine\DBAL\Driver\API\MySQL\ExceptionConverter->convert() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:1366
shlink  |   ERR   Doctrine\DBAL\Connection->handleDriverException() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:1314
shlink  |   ERR   Doctrine\DBAL\Connection->convertException() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:219
shlink  |   ERR   Doctrine\DBAL\Connection->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:236
shlink  |   ERR   Doctrine\DBAL\Connection->getServerVersion() at /etc/shlink/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php:38
shlink  |   ERR   Doctrine\DBAL\Driver\AbstractMySQLDriver->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:191
shlink  |   ERR   Doctrine\DBAL\Connection->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Schema/DefaultSchemaManagerFactory.php:18
shlink  |   ERR   Doctrine\DBAL\Schema\DefaultSchemaManagerFactory->createSchemaManager() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:1156
shlink  |   ERR   Doctrine\DBAL\Connection->createSchemaManager() at /etc/shlink/module/CLI/src/Command/Db/CreateDatabaseCommand.php:91
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Db\CreateDatabaseCommand->ensureDatabaseExistsAndGetTables() at /etc/shlink/module/CLI/src/Command/Db/CreateDatabaseCommand.php:71
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Db\CreateDatabaseCommand->databaseTablesExist() at /etc/shlink/module/CLI/src/Command/Db/CreateDatabaseCommand.php:56
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Db\CreateDatabaseCommand->lockedExecute() at /etc/shlink/module/CLI/src/Command/Util/AbstractLockedCommand.php:35
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Util\AbstractLockedCommand->execute() at /etc/shlink/vendor/symfony/console/Command/Command.php:279
shlink  |   ERR   Symfony\Component\Console\Command\Command->run() at /etc/shlink/vendor/symfony/console/Application.php:1029
shlink  |   ERR   Symfony\Component\Console\Application->doRunCommand() at /etc/shlink/vendor/symfony/console/Application.php:316
shlink  |   ERR   Symfony\Component\Console\Application->doRun() at /etc/shlink/vendor/symfony/console/Application.php:167
shlink  |   ERR   Symfony\Component\Console\Application->run() at /etc/shlink/bin/cli:10
shlink  |   ERR
shlink  |   ERR  In Exception.php line 28:
shlink  |   ERR
shlink  |   ERR    [Doctrine\DBAL\Driver\PDO\Exception (3159)]
shlink  |   ERR    SQLSTATE[HY000] [3159] Connections using insecure transport are prohibited
shlink  |   ERR    while --require_secure_transport=ON.
shlink  |   ERR
shlink  |   ERR
shlink  |   ERR  Exception trace:
shlink  |   ERR    at /etc/shlink/vendor/doctrine/dbal/src/Driver/PDO/Exception.php:28
shlink  |   ERR   Doctrine\DBAL\Driver\PDO\Exception::new() at /etc/shlink/vendor/doctrine/dbal/src/Driver/PDO/MySQL/Driver.php:49
shlink  |   ERR   Doctrine\DBAL\Driver\PDO\MySQL\Driver->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:217
shlink  |   ERR   Doctrine\DBAL\Connection->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:236
shlink  |   ERR   Doctrine\DBAL\Connection->getServerVersion() at /etc/shlink/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php:38
shlink  |   ERR   Doctrine\DBAL\Driver\AbstractMySQLDriver->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:191
shlink  |   ERR   Doctrine\DBAL\Connection->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Schema/DefaultSchemaManagerFactory.php:18
shlink  |   ERR   Doctrine\DBAL\Schema\DefaultSchemaManagerFactory->createSchemaManager() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:1156
shlink  |   ERR   Doctrine\DBAL\Connection->createSchemaManager() at /etc/shlink/module/CLI/src/Command/Db/CreateDatabaseCommand.php:91
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Db\CreateDatabaseCommand->ensureDatabaseExistsAndGetTables() at /etc/shlink/module/CLI/src/Command/Db/CreateDatabaseCommand.php:71
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Db\CreateDatabaseCommand->databaseTablesExist() at /etc/shlink/module/CLI/src/Command/Db/CreateDatabaseCommand.php:56
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Db\CreateDatabaseCommand->lockedExecute() at /etc/shlink/module/CLI/src/Command/Util/AbstractLockedCommand.php:35
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Util\AbstractLockedCommand->execute() at /etc/shlink/vendor/symfony/console/Command/Command.php:279
shlink  |   ERR   Symfony\Component\Console\Command\Command->run() at /etc/shlink/vendor/symfony/console/Application.php:1029
shlink  |   ERR   Symfony\Component\Console\Application->doRunCommand() at /etc/shlink/vendor/symfony/console/Application.php:316
shlink  |   ERR   Symfony\Component\Console\Application->doRun() at /etc/shlink/vendor/symfony/console/Application.php:167
shlink  |   ERR   Symfony\Component\Console\Application->run() at /etc/shlink/bin/cli:10
shlink  |   ERR
shlink  |   ERR  In Driver.php line 42:
shlink  |   ERR
shlink  |   ERR    [PDOException (3159)]
shlink  |   ERR    SQLSTATE[HY000] [3159] Connections using insecure transport are prohibited
shlink  |   ERR    while --require_secure_transport=ON.
shlink  |   ERR
shlink  |   ERR
shlink  |   ERR  Exception trace:
shlink  |   ERR    at /etc/shlink/vendor/doctrine/dbal/src/Driver/PDO/MySQL/Driver.php:42
shlink  |   ERR   PDO->__construct() at /etc/shlink/vendor/doctrine/dbal/src/Driver/PDO/MySQL/Driver.php:42
shlink  |   ERR   Doctrine\DBAL\Driver\PDO\MySQL\Driver->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:217
shlink  |   ERR   Doctrine\DBAL\Connection->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:236
shlink  |   ERR   Doctrine\DBAL\Connection->getServerVersion() at /etc/shlink/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php:38
shlink  |   ERR   Doctrine\DBAL\Driver\AbstractMySQLDriver->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:191
shlink  |   ERR   Doctrine\DBAL\Connection->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Schema/DefaultSchemaManagerFactory.php:18
shlink  |   ERR   Doctrine\DBAL\Schema\DefaultSchemaManagerFactory->createSchemaManager() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:1156
shlink  |   ERR   Doctrine\DBAL\Connection->createSchemaManager() at /etc/shlink/module/CLI/src/Command/Db/CreateDatabaseCommand.php:91
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Db\CreateDatabaseCommand->ensureDatabaseExistsAndGetTables() at /etc/shlink/module/CLI/src/Command/Db/CreateDatabaseCommand.php:71
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Db\CreateDatabaseCommand->databaseTablesExist() at /etc/shlink/module/CLI/src/Command/Db/CreateDatabaseCommand.php:56
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Db\CreateDatabaseCommand->lockedExecute() at /etc/shlink/module/CLI/src/Command/Util/AbstractLockedCommand.php:35
shlink  |   ERR   Shlinkio\Shlink\CLI\Command\Util\AbstractLockedCommand->execute() at /etc/shlink/vendor/symfony/console/Command/Command.php:279
shlink  |   ERR   Symfony\Component\Console\Command\Command->run() at /etc/shlink/vendor/symfony/console/Application.php:1029
shlink  |   ERR   Symfony\Component\Console\Application->doRunCommand() at /etc/shlink/vendor/symfony/console/Application.php:316
shlink  |   ERR   Symfony\Component\Console\Application->doRun() at /etc/shlink/vendor/symfony/console/Application.php:167
shlink  |   ERR   Symfony\Component\Console\Application->run() at /etc/shlink/bin/cli:10
shlink  |   ERR
shlink  |   ERR  db:create
shlink  |   ERR
shlink  |   ERR
shlink  |   RES  255 Command did not run successfully
shlink  | Updating database... [Running "/usr/local/bin/php bin/cli db:migrate"]   RUN  '/usr/local/bin/php' 'bin/cli' 'db:migrate'
shlink  |   OUT  Migrating database...
shlink  |   OUT
shlink  |   ERR    RUN  '/usr/local/bin/php' 'vendor/doctrine/migrations/bin/doctrine-migrations.php' 'migrations:migrate' '--no-interaction'
shlink  |   ERR    ERR
shlink  |   ERR    ERR  In ExceptionConverter.php line 91:
shlink  |   ERR    ERR
shlink  |   ERR    ERR    [Doctrine\DBAL\Exception\DriverException (3159)]
shlink  |   ERR    ERR    An exception occurred in the driver: SQLSTATE[HY000] [3159] Connections usi
shlink  |   ERR    ERR    ng insecure transport are prohibited while --require_secure_transport=ON.
shlink  |   ERR    ERR
shlink  |   ERR    ERR
shlink  |   ERR    ERR  Exception trace:
shlink  |   ERR    ERR    at /etc/shlink/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php:91
shlink  |   ERR    ERR   Doctrine\DBAL\Driver\API\MySQL\ExceptionConverter->convert() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:1366
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->handleDriverException() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:1314
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->convertException() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:219
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:236
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->getServerVersion() at /etc/shlink/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php:38
shlink  |   ERR    ERR   Doctrine\DBAL\Driver\AbstractMySQLDriver->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:191
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:150
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->getDatabase() at /etc/shlink/vendor/doctrine/migrations/src/Tools/Console/Command/MigrateCommand.php:147
shlink  |   ERR    ERR   Doctrine\Migrations\Tools\Console\Command\MigrateCommand->execute() at /etc/shlink/vendor/symfony/console/Command/Command.php:279
shlink  |   ERR    ERR   Symfony\Component\Console\Command\Command->run() at /etc/shlink/vendor/symfony/console/Application.php:1029
shlink  |   ERR    ERR   Symfony\Component\Console\Application->doRunCommand() at /etc/shlink/vendor/symfony/console/Application.php:316
shlink  |   ERR    ERR   Symfony\Component\Console\Application->doRun() at /etc/shlink/vendor/symfony/console/Application.php:167
shlink  |   ERR    ERR   Symfony\Component\Console\Application->run() at /etc/shlink/vendor/doctrine/migrations/src/Tools/Console/ConsoleRunner.php:95
shlink  |   ERR    ERR   Doctrine\Migrations\Tools\Console\ConsoleRunner::run() at /etc/shlink/vendor/doctrine/migrations/bin/doctrine-migrations.php:45
shlink  |   ERR    ERR   Doctrine\Migrations\{closure}() at /etc/shlink/vendor/doctrine/migrations/bin/doctrine-migrations.php:46
shlink  |   ERR    ERR
shlink  |   ERR    ERR  In Exception.php line 28:
shlink  |   ERR    ERR
shlink  |   ERR    ERR    [Doctrine\DBAL\Driver\PDO\Exception (3159)]
shlink  |   ERR    ERR    SQLSTATE[HY000] [3159] Connections using insecure transport are prohibited
shlink  |   ERR    ERR    while --require_secure_transport=ON.
shlink  |   ERR    ERR
shlink  |   ERR    ERR
shlink  |   ERR    ERR  Exception trace:
shlink  |   ERR    ERR    at /etc/shlink/vendor/doctrine/dbal/src/Driver/PDO/Exception.php:28
shlink  |   ERR    ERR   Doctrine\DBAL\Driver\PDO\Exception::new() at /etc/shlink/vendor/doctrine/dbal/src/Driver/PDO/MySQL/Driver.php:49
shlink  |   ERR    ERR   Doctrine\DBAL\Driver\PDO\MySQL\Driver->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:217
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:236
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->getServerVersion() at /etc/shlink/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php:38
shlink  |   ERR    ERR   Doctrine\DBAL\Driver\AbstractMySQLDriver->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:191
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:150
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->getDatabase() at /etc/shlink/vendor/doctrine/migrations/src/Tools/Console/Command/MigrateCommand.php:147
shlink  |   ERR    ERR   Doctrine\Migrations\Tools\Console\Command\MigrateCommand->execute() at /etc/shlink/vendor/symfony/console/Command/Command.php:279
shlink  |   ERR    ERR   Symfony\Component\Console\Command\Command->run() at /etc/shlink/vendor/symfony/console/Application.php:1029
shlink  |   ERR    ERR   Symfony\Component\Console\Application->doRunCommand() at /etc/shlink/vendor/symfony/console/Application.php:316
shlink  |   ERR    ERR   Symfony\Component\Console\Application->doRun() at /etc/shlink/vendor/symfony/console/Application.php:167
shlink  |   ERR    ERR   Symfony\Component\Console\Application->run() at /etc/shlink/vendor/doctrine/migrations/src/Tools/Console/ConsoleRunner.php:95
shlink  |   ERR    ERR   Doctrine\Migrations\Tools\Console\ConsoleRunner::run() at /etc/shlink/vendor/doctrine/migrations/bin/doctrine-migrations.php:45
shlink  |   ERR    ERR   Doctrine\Migrations\{closure}() at /etc/shlink/vendor/doctrine/migrations/bin/doctrine-migrations.php:46
shlink  |   ERR    ERR
shlink  |   ERR    ERR  In Driver.php line 42:
shlink  |   ERR    ERR
shlink  |   ERR    ERR    [PDOException (3159)]
shlink  |   ERR    ERR    SQLSTATE[HY000] [3159] Connections using insecure transport are prohibited
shlink  |   ERR    ERR    while --require_secure_transport=ON.
shlink  |   ERR    ERR
shlink  |   ERR    ERR
shlink  |   ERR    ERR  Exception trace:
shlink  |   ERR    ERR    at /etc/shlink/vendor/doctrine/dbal/src/Driver/PDO/MySQL/Driver.php:42
shlink  |   ERR    ERR   PDO->__construct() at /etc/shlink/vendor/doctrine/dbal/src/Driver/PDO/MySQL/Driver.php:42
shlink  |   ERR    ERR   Doctrine\DBAL\Driver\PDO\MySQL\Driver->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:217
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->connect() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:236
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->getServerVersion() at /etc/shlink/vendor/doctrine/dbal/src/Driver/AbstractMySQLDriver.php:38
shlink  |   ERR    ERR   Doctrine\DBAL\Driver\AbstractMySQLDriver->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:191
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->getDatabasePlatform() at /etc/shlink/vendor/doctrine/dbal/src/Connection.php:150
shlink  |   ERR    ERR   Doctrine\DBAL\Connection->getDatabase() at /etc/shlink/vendor/doctrine/migrations/src/Tools/Console/Command/MigrateCommand.php:147
shlink  |   ERR    ERR   Doctrine\Migrations\Tools\Console\Command\MigrateCommand->execute() at /etc/shlink/vendor/symfony/console/Command/Command.php:279
shlink  |   ERR    ERR   Symfony\Component\Console\Command\Command->run() at /etc/shlink/vendor/symfony/console/Application.php:1029
shlink  |   ERR    ERR   Symfony\Component\Console\Application->doRunCommand() at /etc/shlink/vendor/symfony/console/Application.php:316
shlink  |   ERR    ERR   Symfony\Component\Console\Application->doRun() at /etc/shlink/vendor/symfony/console/Application.php:167
shlink  |   ERR    ERR   Symfony\Component\Console\Application->run() at /etc/shlink/vendor/doctrine/migrations/src/Tools/Console/ConsoleRunner.php:95
shlink  |   ERR    ERR   Doctrine\Migrations\Tools\Console\ConsoleRunner::run() at /etc/shlink/vendor/doctrine/migrations/bin/doctrine-migrations.php:45
shlink  |   ERR    ERR   Doctrine\Migrations\{closure}() at /etc/shlink/vendor/doctrine/migrations/bin/doctrine-migrations.php:46
shlink  |   ERR    ERR
shlink  |   ERR    ERR  migrations:migrate [--write-sql [WRITE-SQL]] [--dry-run] [--query-time] [--allow-no-migration] [--all-or-nothing [ALL-OR-NOTHING]] [--no-all-or-nothing] [--configuration CONFIGURATION] [--em EM] [--conn CONN] [--] [<version>]
shlink  |   ERR    ERR
shlink  |   ERR    ERR
shlink  |   ERR  In Process.php line 269:
shlink  |   ERR
shlink  |   ERR    [Symfony\Component\Process\Exception\ProcessFailedException]
shlink  |   ERR    The command "'/usr/local/bin/php' 'vendor/doctrine/migrations/bin/doctrine-
shlink  |   ERR    migrations.php' 'migrations:migrate' '--no-interaction'" failed.
shlink  |   ERR
shlink  |   ERR    Exit Code: 255(Unknown error)
shlink  |   ERR
shlink  |   ERR    Working directory: /etc/shlink
shlink  |   ERR
shlink  |   ERR    Output:
shlink  |   ERR    ================
shlink  |   ERR
shlink  |   ERR
shlink  |   ERR    Error Output:
shlink  |   ERR    ================
shlink  |   ERR
shlink  |   ERR    In ExceptionConverter.php line 91:
shlink  |   ERR
shlink  |   ERR
shlink  |   ERR      [Doctrine\DBAL\Exception\DriverException (3159)]
shlink  |   ERR
shlink  |   ERR      An exception occurred in the driver: SQLSTATE[HY000] [3159] Connections u
shlink  |   ERR    si
shlink  |   ERR      ng insecure transport are prohibited while --require_secure_transport=ON.
shlink  |   ERR
shlink  |   ERR
shlink  |   ERR
shlink  |   ERR
shlink  |   ERR    Exception trace:
shlink  |   ERR      at /etc/shlink/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConvert
shlink  |   ERR    er.php:91
shlink  |   ERR     Doctrine\DBAL\Driver\API\MySQL\ExceptionConverter->convert() at /etc/shlin
shlink  |   ERR    k/vendor/doctrine/dbal/src/Connection.php:1366
shlink  |   ERR     Doctrine\DBAL\Connection->handleDriverException() at /etc/shlink/vendor/do
shlink  |   ERR    ctrine/dbal/src/Connection.php:1314
shlink  |   ERR     Doctrine\DBAL\Connection->convertException() at /etc/shlink/vendor/doctrin
shlink  |   ERR    e/dbal/src/Connection.php:219
shlink  |   ERR     Doctrine\DBAL\Connection->connect() at /etc/shlink/vendor/doctrine/dbal/sr
shlink  |   ERR    c/Connection.php:236
shlink  |   ERR     Doctrine\DBAL\Connection->getServerVersion() at /etc/shlink/vendor/doctrin
shlink  |   ERR    e/dbal/src/Driver/AbstractMySQLDriver.php:38
shlink  |   ERR     Doctrine\DBAL\Driver\AbstractMySQLDriver->getDatabasePlatform() at /etc/sh
shlink  |   ERR    link/vendor/doctrine/dbal/src/Connection.php:191
shlink  |   ERR     Doctrine\DBAL\Connection->getDatabasePlatform() at /etc/shlink/vendor/doct
shlink  |   ERR    rine/dbal/src/Connection.php:150
shlink  |   ERR     Doctrine\DBAL\Connection->getDatabase() at /etc/shlink/vendor/doctrine/mig
shlink  |   ERR    rations/src/Tools/Console/Command/MigrateCommand.php:147
shlink  |   ERR     Doctrine\Migrations\Tools\Console\Command\MigrateCommand->execute() at /et
shlink  |   ERR    c/shlink/vendor/symfony/console/Command/Command.php:279
shlink  |   ERR     Symfony\Component\Console\Command\Command->run() at /etc/shlink/vendor/sym
shlink  |   ERR    fony/console/Application.php:1029
shlink  |   ERR     Symfony\Component\Console\Application->doRunCommand() at /etc/shlink/vendo
shlink  |   ERR    r/symfony/console/Application.php:316
shlink  |   ERR     Symfony\Component\Console\Application->doRun() at /etc/shlink/vendor/symfo
shlink  |   ERR    ny/console/Application.php:167
shlink  |   ERR     Symfony\Component\Console\Application->run() at /etc/shlink/vendor/doctrin
shlink  |   ERR    e/migrations/src/Tools/Console/ConsoleRunner.php:95
shlink  |   ERR     Doctrine\Migrations\Tools\Console\ConsoleRunner::run() at /etc/shlink/vend
shlink  |   ERR    or/doctrine/migrations/bin/doctrine-migrations.php:45
shlink  |   ERR     Doctrine\Migrations\{closure}() at /etc/shlink/vendor/doctrine/migrations/
shlink  |   ERR    bin/doctrine-migrations.php:46
shlink  |   ERR
shlink  |   ERR    In Exception.php line 28:

Additional Information

Docker version: Docker version 27.3.1, build ce12230
Database: MySQL 8.0
Operating System: Linux

Any insights or suggestions on how to resolve this database TLS connection issue would be greatly appreciated.

Thank you for your help!

@acelaya
Copy link
Member

acelaya commented Oct 8, 2024

Hmm. Yeah, I think there's probably an obvious missing option to enable/set TLS/SSL.

Perhaps by supporting the database connection to be provided as a DSN, this would be addressable, but I'm not sure.

The database abstraction used by Shlink also mentions SSL-related options, but they seem pretty different depending on the database engine, or require providing information which would be hard to manage (cert files and such).

I will have to do a bit of experimentation.

@acelaya acelaya added this to the 4.4.0 milestone Nov 11, 2024
@acelaya acelaya modified the milestone: 4.4.0 Nov 29, 2024
@acelaya acelaya moved this to Todo in Shlink Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Todo
Development

No branches or pull requests

2 participants