PostgreSQL root.crt não carregando

3

Estou executando o postgresql 9.1 no Ubuntu 12.04.

Eu queria mudar o diretório de dados do postgres. Então eu criei um novo diretório e executei o initdb. Eu também fiz links simbólicos do certificado para o diretório de dados.

Mas ainda assim o postgres não consegue encontrar root.crt:

sudo /etc/init.d/postgresql start
 * Starting PostgreSQL 9.1 database server                                                   * The PostgreSQL server failed to start. Please check the log output:
2012-08-17 16:02:33 CEST FATAL:  could not load root certificate file "root.crt": no SSL error reported

O que estou fazendo de errado? O diretório de dados é assim:

ls -la
total 92
drwx------ 13 postgres postgres  4096 Aug 16 14:36 .
drwxr-xr-x  3 root     root      4096 Aug 16 13:57 ..
drwx------  5 postgres postgres  4096 Aug 16 14:00 base
drwx------  2 postgres postgres  4096 Aug 16 14:36 global
drwx------  2 postgres postgres  4096 Aug 16 14:00 pg_clog
-rw-------  1 postgres postgres  4476 Aug 16 14:00 pg_hba.conf
-rw-------  1 postgres postgres  1636 Aug 16 14:00 pg_ident.conf
drwx------  4 postgres postgres  4096 Aug 16 14:00 pg_multixact
drwx------  2 postgres postgres  4096 Aug 16 14:35 pg_notify
drwx------  2 postgres postgres  4096 Aug 16 14:00 pg_serial
drwx------  2 postgres postgres  4096 Aug 16 14:36 pg_stat_tmp
drwx------  2 postgres postgres  4096 Aug 16 14:00 pg_subtrans
drwx------  2 postgres postgres  4096 Aug 16 14:00 pg_tblspc
drwx------  2 postgres postgres  4096 Aug 16 14:00 pg_twophase
-rw-------  1 postgres postgres     4 Aug 16 14:00 PG_VERSION
drwx------  3 postgres postgres  4096 Aug 16 14:00 pg_xlog
-rw-------  1 postgres postgres 19169 Aug 16 14:00 postgresql.conf
-rw-------  1 postgres postgres   126 Aug 16 14:35 postmaster.opts
lrwxrwxrwx  1 postgres postgres    31 Aug 16 14:13 root.crt -> /etc/postgresql-common/root.crt
lrwxrwxrwx  1 postgres postgres    36 Aug 16 14:13 server.crt -> /etc/ssl/certs/ssl-cert-snakeoil.pem
lrwxrwxrwx  1 postgres postgres    38 Aug 16 14:13 server.key -> /etc/ssl/private/ssl-cert-snakeoil.key

para que o root.crt esteja lá e visível.

Alguma sugestão?

    
por EDi 17.08.2012 / 16:10

2 respostas

3

Obrigado Chida pela sua dica!

A saída foi:

 sudo -u postgres cat /etc/postgresql-common/root.crt

This is a dummy root certificate file for PostgreSQL. To enable client side
authentication, add some certificates to it. Client certificates must be signed
with any certificate in this file to be accepted. 

A reasonable choice is to just symlink this file to
/etc/ssl/certs/ssl-cert-snakeoil.pem; in this case, client certificates need to
be signed by the postgresql server certificate, which might be desirable in
many cases. See

  file:///usr/share/doc/postgresql-doc-8.3/html/ssl-tcp.html

for details (in package postgresql-doc-8.3).

Então eu apontei root.crt no diretório de dados para /etc/ssl/certs/ssl-cert-snakeoil.pem:

 ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem root.crt

E então postgresql começou sem nenhum erro!

    
por 18.08.2012 / 13:28
-2

Eu me deparei com essa questão, brinquei com o link simbólico e com as permissões / etc / ssl / * diretório / arquivo e continuei recebendo este erro.

Eventualmente, corrigi-o removendo os links simbólicos em / var / lib / postgresql / * / main e copiando os arquivos .pem e .key dos respectivos diretórios em / etc / ssl, alterando seus nomes para qualquer que seja o relacionado nome do symlink era, definir o proprietário do grupo para ssl-cert e foi capaz de obter o banco de dados para finalmente iniciar o backup.

    
por 01.11.2014 / 01:48

Tags