PostgreSQL failed to start. unable to load private key file << server.key >> : key values mismatch
7,144
Solution 1
I was having this problem aswell. I fixed this by doing:
cd /var/lib/postgresql/9.1/main #Change 9.1 to your version
Remove the symlink to the old certificates
sudo rm server.*
Then regenerate the certificates
openssl genrsa -des3 -out server.key 2048
openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.secure
mv server.key.insecure server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Then set the permissions
chown postgres.postgres server.*
chmod 640 server.*
Hope this helps
Solution 2
The same error message appears if you ssl_cert_file
points to a certificate chain, not just to a single certificate.
Related videos on Youtube

Author by
SOf Virtual
Updated on September 18, 2022Comments
-
SOf Virtual 3 months
I am trying to install PostgreSQL on my Linux Debian 7.2 server but it fails.
this is what I did :
user ~ $ sudo apt-get install postgresql Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : postgresql-9.1 postgresql-client-9.1 postgresql-client-common postgresql-common Paquets suggérés : oidentd ident-server locales-all postgresql-doc-9.1 Les NOUVEAUX paquets suivants seront installés : postgresql postgresql-9.1 postgresql-client-9.1 postgresql-client-common postgresql-common 0 mis à jour, 5 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 0 o/4 518 ko dans les archives. Après cette opération, 22,0 Mo d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ? O Préconfiguration des paquets... Sélection du paquet postgresql-client-common précédemment désélectionné. (Lecture de la base de données... 51752 fichiers et répertoires déjà installés.) Dépaquetage de postgresql-client-common (à partir de .../postgresql-client-common_134wheezy4_all.deb) ... Sélection du paquet postgresql-client-9.1 précédemment désélectionné. Dépaquetage de postgresql-client-9.1 (à partir de .../postgresql-client-9.1_9.1.14-0+deb7u1_amd64.deb) ... Sélection du paquet postgresql-common précédemment désélectionné. Dépaquetage de postgresql-common (à partir de .../postgresql-common_134wheezy4_all.deb) ... Ajout de « détournement de /usr/bin/pg_config en /usr/bin/pg_config.libpq-dev par postgresql-common » Sélection du paquet postgresql-9.1 précédemment désélectionné. Dépaquetage de postgresql-9.1 (à partir de .../postgresql-9.1_9.1.14-0+deb7u1_amd64.deb) ... Sélection du paquet postgresql précédemment désélectionné. Dépaquetage de postgresql (à partir de .../postgresql_9.1+134wheezy4_all.deb) ... Traitement des actions différées (« triggers ») pour « man-db »... Paramétrage de postgresql-client-common (134wheezy4) ... Paramétrage de postgresql-client-9.1 (9.1.14-0+deb7u1) ... update-alternatives: utilisation de « /usr/share/postgresql/9.1/man/man1/psql.1.gz » pour fournir « /usr/share/man/man1/psql.1.gz » (psql.1.gz) en mode automatique Paramétrage de postgresql-common (134wheezy4) ... Ajout de l'utilisateur postgres au groupe ssl-cert Building PostgreSQL dictionaries from installed myspell/hunspell packages... Paramétrage de postgresql-9.1 (9.1.14-0+deb7u1) ... Creating new cluster (configuration: /etc/postgresql/9.1/main, data: /var/lib/postgresql/9.1/main)... Moving configuration file /var/lib/postgresql/9.1/main/postgresql.conf to /etc/postgresql/9.1/main... Moving configuration file /var/lib/postgresql/9.1/main/pg_hba.conf to /etc/postgresql/9.1/main... Moving configuration file /var/lib/postgresql/9.1/main/pg_ident.conf to /etc/postgresql/9.1/main... Configuring postgresql.conf to use port 5432... update-alternatives: utilisation de « /usr/share/postgresql/9.1/man/man1/postmaster.1.gz » pour fournir « /usr/share/man/man1/postmaster.1.gz » (postmaster.1.gz) en mode automatique [....] Starting PostgreSQL 9.1 database server: main[....] The PostgreSQL server failed to start. Please check the log output: 2014-12-28 14:05:24 CET FATAL: n'a pas pu charger le fichier de cl? priv?e << server.key >> : key values misma[FAIL.. failed! failed! invoke-rc.d: initscript postgresql, action "start" failed. dpkg: erreur de traitement de postgresql-9.1 (--configure) : le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1 dpkg: des problèmes de dépendances empêchent la configuration de postgresql : postgresql dépend de postgresql-9.1 ; cependant : Le paquet postgresql-9.1 n'est pas encore configuré. dpkg: erreur de traitement de postgresql (--configure) : problèmes de dépendances - laissé non configuré Des erreurs ont été rencontrées pendant l'exécution : postgresql-9.1 postgresql [ Rootkit Hunter version 1.4.0 ] File updated: searched for 169 files, found 136 E: Sub-process /usr/bin/dpkg returned an error code (1)
And when I check log file it only says
2014-12-28 14:05:24 CET FATAL: n'a pas pu charger le fichier de cl? priv?e << server.key >> : key values mismatch
(unable to load private key file << server.key >> : key values mismatch
I have tried to completely uninstall and reinstall but still not work. Any help pls ?
-
Craig Ringer almost 8 yearsIt's a problem with the data directory contents, probably caused by a mismatch between the server's SSL certificate and SSL key. This could mean that it's using the system Snakeoil certs and they're broken, or that it's using its own and they're misconfigured. If you don't have any data of value in the PostgreSQL install, the first thing you should do is
apt-get --purge remove postgresql-9.1
then delete the data directory (this will permanently and unrecoverably destroy your database contents) which in Ubuntu is IIRC located in/var/lib/pgsql/9.4
. -
SOf Virtual almost 8 years@CraigRinger Thx for answer. I have already tried to completely purge and uninstall postgresql, and delete all dirs. But the error remains on reinstalling. Yes it seems there's an error with certificates, but I don't know how to figure it out.
-
Craig Ringer almost 8 yearsSounds like it's an issue with the system default 'snakeoil' certs then. Regenerate them maybe. See ptspts.blogspot.com.au/2010/01/… for example.
-
-
Melardev over 1 yearI had to use 0600 permission rather than 640, with 640 I got an error message stating the permission should be 0600, sure enough chmod 0600 server.* did fix the issue.