Skip to content

TLS Security

By default, Syntra ODBC communicates over unencrypted connections on localhost. For production deployments, especially when clients connect over a network, you should enable TLS encryption to protect QuickBooks data in transit.

TLS (Transport Layer Security) encrypts all traffic between clients and the Syntra server. When enabled, Syntra presents a certificate to connecting clients, and all SQL queries and results are encrypted.

For internal use, generate a self-signed certificate using OpenSSL:

Terminal window
openssl req -new -x509 -days 3650 -nodes \
-out syntra-server.crt \
-keyout syntra-server.key \
-subj "/CN=localhost"

For production environments with a domain name, use a certificate from a trusted CA (e.g., Let’s Encrypt) or your organization’s internal CA.

Add the following to config.toml:

[tls]
enabled = true
cert_file = "C:\\ProgramData\\SyntraODBC\\certs\\syntra-server.crt"
key_file = "C:\\ProgramData\\SyntraODBC\\certs\\syntra-server.key"

Restart the Syntra service after making changes.

Add SSLMode=require to your connection string:

Driver={PostgreSQL Unicode};Server=localhost;Port=5433;Database=quickbooks;Uid=syntra;Pwd=yourpassword;SSLMode=require;
postgresql://qbconnect:yourpassword@localhost:5433/quickbooks?sslmode=require

Check the Require SSL checkbox in the PostgreSQL connection dialog.

import pyodbc
conn = pyodbc.connect(
"DRIVER={PostgreSQL Unicode};"
"SERVER=localhost;PORT=5433;"
"DATABASE=quickbooks;UID=qbconnect;PWD=yourpassword;"
"SSLMode=require;"
)
const client = new Client({
host: 'localhost',
port: 5433,
database: 'quickbooks',
user: 'syntra',
password: 'yourpassword',
ssl: { rejectUnauthorized: false } // Set to true with a CA-signed cert
});
ModeEncryptionCertificate VerificationUse Case
disableNoNoLocal development
preferIf availableNoDefault
requireYesNoEncrypted, no verification
verify-caYesCA onlyTrusted CA
verify-fullYesCA + hostnameFull security

Ensure the private key file is only readable by the Syntra service account:

Terminal window
icacls "C:\ProgramData\SyntraODBC\certs\syntra-server.key" /inheritance:r /grant:r "NT SERVICE\SyntraODBC:(R)"
  • “SSL not supported”: Ensure [tls] enabled = true is set in config.toml and the service was restarted.
  • Certificate errors: Verify the certificate file paths are correct and the files are readable by the service.
  • Self-signed certificate warnings: Clients will warn about self-signed certificates. Use sslmode=require (not verify-full) to accept self-signed certificates.