pg.ddx.io  pgsql-es-ayuda@postgresql.org mailing list archive  
help / color / mirror / Atom feed
Re: Autenticación TSL
21+ messages / 6 participants
[nested] [flat]

* Autenticación TSL
@ 2025-03-10 16:36 Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 19:37 ` Re: Autenticación TSL Horacio Miranda <hmiranda@gmail.com>
  0 siblings, 2 replies; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-10 16:36 UTC (permalink / raw)
  To: pgsql-es-ayuda

Buenas tardes! En los últimos días estuve trabajando en el proyecto de
hacer funcionar postgres 13, con autenticación por certificados ssl, usando
openssl y certificados firmados por una propia CA funcionó correctamente,
pero cuando intento hacerlo con certificados Let's Encrypt para el
servidor, no funciona.

Desde el cliente con credenciales de lets encrypt
psql "host=host.dominio.com dbname=postgres user=postgres sslmode=verify-ca
sslcert=./fullchain.pem sslkey=./privkey.pem sslrootcert=./chain.pem"
Error:
psql: error: connection to server at " host.dominio.com" (ip), port 5432
failed: SSL error: certificate verify failed

Y en el log de postgres:
2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:  connection
received: host=ip_del_cliente port=55848
2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
accept SSL connection: tlsv1 alert unknown ca

Tambien lo probé con certificados autofirmados para el cliente adaptando
postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
funcionar.

Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?

Desde ya muchas gracias por leer y por los comentarios que tengan.

Saludos

^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-10 16:27 ` Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  1 sibling, 1 reply; 21+ messages in thread

From: Enrique Herrera Noya @ 2025-03-10 16:27 UTC (permalink / raw)
  To: pgsql-es-ayuda@lists.postgresql.org

lo dice el log:
2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not 
accept SSL connection: tlsv1 alert unknown ca

debes agregar el CA como CA conocido

saludos


El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
> Buenas tardes! En los últimos días estuve trabajando en el proyecto de 
> hacer funcionar postgres 13, con autenticación por certificados ssl, 
> usando openssl y certificados firmados por una propia CA funcionó 
> correctamente, pero cuando intento hacerlo con certificados Let's 
> Encrypt para el servidor, no funciona.
>
> Desde el cliente con credenciales de lets encrypt
> psql "host=host.dominio.com <http://host.dominio.com; dbname=postgres 
> user=postgres sslmode=verify-ca sslcert=./fullchain.pem 
> sslkey=./privkey.pem sslrootcert=./chain.pem"
> Error:
> psql: error: connection to server at " host.dominio.com 
> <http://host.dominio.com>"; (ip), port 5432 failed: SSL error: 
> certificate verify failed
>
> Y en el log de postgres:
> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG: 
>  connection received: host=ip_del_cliente port=55848
> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could 
> not accept SSL connection: tlsv1 alert unknown ca
>
> Tambien lo probé con certificados autofirmados para el cliente 
> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro 
> hacerlo funcionar.
>
> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>
> Desde ya muchas gracias por leer y por los comentarios que tengan.
>
> Saludos


Enrique Herrera Noya
-- 
+56 992303151
Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
Novell Certified Linux Professional CLP 10
Red Hat Delivery Specialist -Container Platform Application Deployment I
Red Hat Delivery Specialist - Container Platform Administration I
RED HAT SPECIALIST
How to Sell Red Hat OpenShift for Infrastructure
How to Sell Red Hat OpenShift for Developers
Red Hat Sales Engineer Specialist - Container Platform
Red Hat Sales Engineer Specialist – Automation

^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
@ 2025-03-10 17:00   ` Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  0 siblings, 1 reply; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-10 17:00 UTC (permalink / raw)
  To: Enrique Herrera Noya <enrique.herreranoya@gmail.com>; +Cc: pgsql-es-ayuda@lists.postgresql.org

Enrique, gracias por tu respuesta
en las pruebas que realicé,  en el server a la ca la agrego en
postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso no es
suficiente? acaso mi comando para generarla:
openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key -subj
"/CN=root-ca"
no la agrega automáticamente en las ca conocidas?
Te referis del lado del cliente?

El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
enrique.herreranoya@gmail.com>) escribió:

> lo dice el log:
> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
> accept SSL connection: tlsv1 alert unknown ca
>
> debes agregar el CA como CA conocido
>
> saludos
>
>
> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>
> Buenas tardes! En los últimos días estuve trabajando en el proyecto de
> hacer funcionar postgres 13, con autenticación por certificados ssl, usando
> openssl y certificados firmados por una propia CA funcionó correctamente,
> pero cuando intento hacerlo con certificados Let's Encrypt para el
> servidor, no funciona.
>
> Desde el cliente con credenciales de lets encrypt
> psql "host=host.dominio.com dbname=postgres user=postgres
> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
> sslrootcert=./chain.pem"
> Error:
> psql: error: connection to server at " host.dominio.com" (ip), port 5432
> failed: SSL error: certificate verify failed
>
> Y en el log de postgres:
> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:  connection
> received: host=ip_del_cliente port=55848
> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
> accept SSL connection: tlsv1 alert unknown ca
>
> Tambien lo probé con certificados autofirmados para el cliente adaptando
> postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
> funcionar.
>
> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>
> Desde ya muchas gracias por leer y por los comentarios que tengan.
>
> Saludos
>
>
> Enrique Herrera Noya
> --
> +56 992303151
> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
> Novell Certified Linux Professional CLP 10
> Red Hat Delivery Specialist -Container Platform Application Deployment I
> Red Hat Delivery Specialist - Container Platform Administration I
> RED HAT SPECIALIST
> How to Sell Red Hat OpenShift for Infrastructure
> How to Sell Red Hat OpenShift for Developers
> Red Hat Sales Engineer Specialist - Container Platform
> Red Hat Sales Engineer Specialist – Automation
>
>

^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-10 17:59     ` Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  0 siblings, 1 reply; 21+ messages in thread

From: Juan @ 2025-03-10 17:59 UTC (permalink / raw)
  To: Guillermo E. Villanueva <guillermovil@gmail.com>; +Cc: Enrique Herrera Noya <enrique.herreranoya@gmail.com>; pgsql-es-ayuda@lists.postgresql.org

existe un comando update-ca-certificates cambia en cada distro....
salu2

On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
guillermovil@gmail.com> wrote:

> Enrique, gracias por tu respuesta
> en las pruebas que realicé,  en el server a la ca la agrego en
> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso no es
> suficiente? acaso mi comando para generarla:
> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key -subj
> "/CN=root-ca"
> no la agrega automáticamente en las ca conocidas?
> Te referis del lado del cliente?
>
> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
> enrique.herreranoya@gmail.com>) escribió:
>
>> lo dice el log:
>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
>> accept SSL connection: tlsv1 alert unknown ca
>>
>> debes agregar el CA como CA conocido
>>
>> saludos
>>
>>
>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>
>> Buenas tardes! En los últimos días estuve trabajando en el proyecto de
>> hacer funcionar postgres 13, con autenticación por certificados ssl, usando
>> openssl y certificados firmados por una propia CA funcionó correctamente,
>> pero cuando intento hacerlo con certificados Let's Encrypt para el
>> servidor, no funciona.
>>
>> Desde el cliente con credenciales de lets encrypt
>> psql "host=host.dominio.com dbname=postgres user=postgres
>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>> sslrootcert=./chain.pem"
>> Error:
>> psql: error: connection to server at " host.dominio.com" (ip), port 5432
>> failed: SSL error: certificate verify failed
>>
>> Y en el log de postgres:
>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:  connection
>> received: host=ip_del_cliente port=55848
>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
>> accept SSL connection: tlsv1 alert unknown ca
>>
>> Tambien lo probé con certificados autofirmados para el cliente adaptando
>> postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>> funcionar.
>>
>> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>>
>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>
>> Saludos
>>
>>
>> Enrique Herrera Noya
>> --
>> +56 992303151
>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>> Novell Certified Linux Professional CLP 10
>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>> Red Hat Delivery Specialist - Container Platform Administration I
>> RED HAT SPECIALIST
>> How to Sell Red Hat OpenShift for Infrastructure
>> How to Sell Red Hat OpenShift for Developers
>> Red Hat Sales Engineer Specialist - Container Platform
>> Red Hat Sales Engineer Specialist – Automation
>>
>>

^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
@ 2025-03-10 18:19       ` Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:23         ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  0 siblings, 2 replies; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-10 18:19 UTC (permalink / raw)
  To: Juan <smalltalker.marcelo@gmail.com>; +Cc: Enrique Herrera Noya <enrique.herreranoya@gmail.com>; pgsql-es-ayuda@lists.postgresql.org

Gracias Juan. Probé eso  y el problema persiste
Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
funcionar con Let´s encrypt, ya que si me funcionó con certificados
autofirmados en ambos lados.


El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
escribió:

> existe un comando update-ca-certificates cambia en cada distro....
> salu2
>
> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
> guillermovil@gmail.com> wrote:
>
>> Enrique, gracias por tu respuesta
>> en las pruebas que realicé,  en el server a la ca la agrego en
>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso no es
>> suficiente? acaso mi comando para generarla:
>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key -subj
>> "/CN=root-ca"
>> no la agrega automáticamente en las ca conocidas?
>> Te referis del lado del cliente?
>>
>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>> enrique.herreranoya@gmail.com>) escribió:
>>
>>> lo dice el log:
>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
>>> accept SSL connection: tlsv1 alert unknown ca
>>>
>>> debes agregar el CA como CA conocido
>>>
>>> saludos
>>>
>>>
>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>
>>> Buenas tardes! En los últimos días estuve trabajando en el proyecto de
>>> hacer funcionar postgres 13, con autenticación por certificados ssl, usando
>>> openssl y certificados firmados por una propia CA funcionó correctamente,
>>> pero cuando intento hacerlo con certificados Let's Encrypt para el
>>> servidor, no funciona.
>>>
>>> Desde el cliente con credenciales de lets encrypt
>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>> sslrootcert=./chain.pem"
>>> Error:
>>> psql: error: connection to server at " host.dominio.com" (ip), port
>>> 5432 failed: SSL error: certificate verify failed
>>>
>>> Y en el log de postgres:
>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>  connection received: host=ip_del_cliente port=55848
>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
>>> accept SSL connection: tlsv1 alert unknown ca
>>>
>>> Tambien lo probé con certificados autofirmados para el cliente adaptando
>>> postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>> funcionar.
>>>
>>> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>>>
>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>
>>> Saludos
>>>
>>>
>>> Enrique Herrera Noya
>>> --
>>> +56 992303151
>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>> Novell Certified Linux Professional CLP 10
>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>> Red Hat Delivery Specialist - Container Platform Administration I
>>> RED HAT SPECIALIST
>>> How to Sell Red Hat OpenShift for Infrastructure
>>> How to Sell Red Hat OpenShift for Developers
>>> Red Hat Sales Engineer Specialist - Container Platform
>>> Red Hat Sales Engineer Specialist – Automation
>>>
>>>

^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-10 18:23         ` Juan <smalltalker.marcelo@gmail.com>
  1 sibling, 0 replies; 21+ messages in thread

From: Juan @ 2025-03-10 18:23 UTC (permalink / raw)
  To: Guillermo E. Villanueva <guillermovil@gmail.com>; +Cc: Enrique Herrera Noya <enrique.herreranoya@gmail.com>; pgsql-es-ayuda@lists.postgresql.org

Copiaste primero tu certificado al directorio de certs?
Fíjate en tu distro puede ser /etc/certs o /usar/share/certs etc ...
Tal vez
sudo find /  -iname "*cert* -type d
Te de una pista
Salu2

El lun, 10 de mar de 2025, 15:19, Guillermo E. Villanueva <
guillermovil@gmail.com> escribió:

> Gracias Juan. Probé eso  y el problema persiste
> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
> funcionar con Let´s encrypt, ya que si me funcionó con certificados
> autofirmados en ambos lados.
>
>
> El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
> escribió:
>
>> existe un comando update-ca-certificates cambia en cada distro....
>> salu2
>>
>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>> guillermovil@gmail.com> wrote:
>>
>>> Enrique, gracias por tu respuesta
>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso no es
>>> suficiente? acaso mi comando para generarla:
>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key -subj
>>> "/CN=root-ca"
>>> no la agrega automáticamente en las ca conocidas?
>>> Te referis del lado del cliente?
>>>
>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>> enrique.herreranoya@gmail.com>) escribió:
>>>
>>>> lo dice el log:
>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>
>>>> debes agregar el CA como CA conocido
>>>>
>>>> saludos
>>>>
>>>>
>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>
>>>> Buenas tardes! En los últimos días estuve trabajando en el proyecto de
>>>> hacer funcionar postgres 13, con autenticación por certificados ssl, usando
>>>> openssl y certificados firmados por una propia CA funcionó correctamente,
>>>> pero cuando intento hacerlo con certificados Let's Encrypt para el
>>>> servidor, no funciona.
>>>>
>>>> Desde el cliente con credenciales de lets encrypt
>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>> sslrootcert=./chain.pem"
>>>> Error:
>>>> psql: error: connection to server at " host.dominio.com" (ip), port
>>>> 5432 failed: SSL error: certificate verify failed
>>>>
>>>> Y en el log de postgres:
>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>  connection received: host=ip_del_cliente port=55848
>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>
>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>> funcionar.
>>>>
>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>>>>
>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>
>>>> Saludos
>>>>
>>>>
>>>> Enrique Herrera Noya
>>>> --
>>>> +56 992303151
>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>> Novell Certified Linux Professional CLP 10
>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>> RED HAT SPECIALIST
>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>> How to Sell Red Hat OpenShift for Developers
>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>> Red Hat Sales Engineer Specialist – Automation
>>>>
>>>>

^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-10 18:37         ` Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 13:44           ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  1 sibling, 1 reply; 21+ messages in thread

From: Jairo Graterón @ 2025-03-10 18:37 UTC (permalink / raw)
  To: Guillermo E. Villanueva <guillermovil@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; pgsql-es-ayuda@lists.postgresql.org

Puede ser un error en la cadena de confianza.

El certificado de Let's Encrypt depende de otra CA,

[image: image.png]

Se deben agregar los dos certificados en formato PEM en el archivo CA de
postgresql.

1. CN=R10
2. CN=ISRG Root X1

El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
guillermovil@gmail.com>) escribió:

> Gracias Juan. Probé eso  y el problema persiste
> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
> funcionar con Let´s encrypt, ya que si me funcionó con certificados
> autofirmados en ambos lados.
>
>
> El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
> escribió:
>
>> existe un comando update-ca-certificates cambia en cada distro....
>> salu2
>>
>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>> guillermovil@gmail.com> wrote:
>>
>>> Enrique, gracias por tu respuesta
>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso no es
>>> suficiente? acaso mi comando para generarla:
>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key -subj
>>> "/CN=root-ca"
>>> no la agrega automáticamente en las ca conocidas?
>>> Te referis del lado del cliente?
>>>
>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>> enrique.herreranoya@gmail.com>) escribió:
>>>
>>>> lo dice el log:
>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>
>>>> debes agregar el CA como CA conocido
>>>>
>>>> saludos
>>>>
>>>>
>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>
>>>> Buenas tardes! En los últimos días estuve trabajando en el proyecto de
>>>> hacer funcionar postgres 13, con autenticación por certificados ssl, usando
>>>> openssl y certificados firmados por una propia CA funcionó correctamente,
>>>> pero cuando intento hacerlo con certificados Let's Encrypt para el
>>>> servidor, no funciona.
>>>>
>>>> Desde el cliente con credenciales de lets encrypt
>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>> sslrootcert=./chain.pem"
>>>> Error:
>>>> psql: error: connection to server at " host.dominio.com" (ip), port
>>>> 5432 failed: SSL error: certificate verify failed
>>>>
>>>> Y en el log de postgres:
>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>  connection received: host=ip_del_cliente port=55848
>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>
>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>> funcionar.
>>>>
>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>>>>
>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>
>>>> Saludos
>>>>
>>>>
>>>> Enrique Herrera Noya
>>>> --
>>>> +56 992303151
>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>> Novell Certified Linux Professional CLP 10
>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>> RED HAT SPECIALIST
>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>> How to Sell Red Hat OpenShift for Developers
>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>> Red Hat Sales Engineer Specialist – Automation
>>>>
>>>>

Attachments:

image.png (image/png, 130.7K) download view image
^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
@ 2025-03-11 13:44           ` Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 17:31             ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  0 siblings, 1 reply; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-11 13:44 UTC (permalink / raw)
  To: Jairo Graterón <jgrateron@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; pgsql-es-ayuda@lists.postgresql.org

Gracias por tu aporte Jairo!
Hay algo que no entiendo, a los certificados de clientes los genero con
ca.crt (custom CA para mi server), en el postgresql.conf tengo ssl_ca_file
= /var/lib/postgres/13/ssl/ca.crt.
Entonces para que necesitaría hacer el paso que me decis?

Si ejecuto:
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem

Me da:
chain.pem: OK


El lun, 10 mar 2025 a las 15:37, Jairo Graterón (<jgrateron@gmail.com>)
escribió:

> Puede ser un error en la cadena de confianza.
>
> El certificado de Let's Encrypt depende de otra CA,
>
> [image: image.png]
>
> Se deben agregar los dos certificados en formato PEM en el archivo CA de
> postgresql.
>
> 1. CN=R10
> 2. CN=ISRG Root X1
>
> El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
> guillermovil@gmail.com>) escribió:
>
>> Gracias Juan. Probé eso  y el problema persiste
>> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
>> funcionar con Let´s encrypt, ya que si me funcionó con certificados
>> autofirmados en ambos lados.
>>
>>
>> El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
>> escribió:
>>
>>> existe un comando update-ca-certificates cambia en cada distro....
>>> salu2
>>>
>>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>>> guillermovil@gmail.com> wrote:
>>>
>>>> Enrique, gracias por tu respuesta
>>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso no
>>>> es suficiente? acaso mi comando para generarla:
>>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key
>>>> -subj "/CN=root-ca"
>>>> no la agrega automáticamente en las ca conocidas?
>>>> Te referis del lado del cliente?
>>>>
>>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>>> enrique.herreranoya@gmail.com>) escribió:
>>>>
>>>>> lo dice el log:
>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>>
>>>>> debes agregar el CA como CA conocido
>>>>>
>>>>> saludos
>>>>>
>>>>>
>>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>>
>>>>> Buenas tardes! En los últimos días estuve trabajando en el proyecto de
>>>>> hacer funcionar postgres 13, con autenticación por certificados ssl, usando
>>>>> openssl y certificados firmados por una propia CA funcionó correctamente,
>>>>> pero cuando intento hacerlo con certificados Let's Encrypt para el
>>>>> servidor, no funciona.
>>>>>
>>>>> Desde el cliente con credenciales de lets encrypt
>>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>>> sslrootcert=./chain.pem"
>>>>> Error:
>>>>> psql: error: connection to server at " host.dominio.com" (ip), port
>>>>> 5432 failed: SSL error: certificate verify failed
>>>>>
>>>>> Y en el log de postgres:
>>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>>  connection received: host=ip_del_cliente port=55848
>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>>
>>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>>> funcionar.
>>>>>
>>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>>>>>
>>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>>
>>>>> Saludos
>>>>>
>>>>>
>>>>> Enrique Herrera Noya
>>>>> --
>>>>> +56 992303151
>>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>>> Novell Certified Linux Professional CLP 10
>>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>>> RED HAT SPECIALIST
>>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>>> How to Sell Red Hat OpenShift for Developers
>>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>>> Red Hat Sales Engineer Specialist – Automation
>>>>>
>>>>>

Attachments:

image.png (image/png, 130.7K) download view image
^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 13:44           ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-11 17:31             ` Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 18:07               ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-12 15:27               ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  0 siblings, 2 replies; 21+ messages in thread

From: Jairo Graterón @ 2025-03-11 17:31 UTC (permalink / raw)
  To: Guillermo E. Villanueva <guillermovil@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; pgsql-es-ayuda@lists.postgresql.org

Hice la prueba con un certificado Lets encrypt y funciona correctamente.

[image: image.png]

También adjunto el archivo ca.pem que contiene los dos certificados CA de
Lets Encrypt, que se usarán tanto en el servidor como en el cliente.

Observa que en la segunda conexión no usé el certificado cliente (el mismo
del servidor) porque psql lo omite porque especificaste el modo verify-ca

Hay otros modos como verify-full, y también es posible autenticar sin
password (usando sólo el certificado) pero eso
requiere otras configuraciones.

Muchas cosas aprendí de esta presentación

https://momjian.us/main/writings/pgsql/securing.pdf

Saludos.

El mar, 11 mar 2025 a las 9:44, Guillermo E. Villanueva (<
guillermovil@gmail.com>) escribió:

> Gracias por tu aporte Jairo!
> Hay algo que no entiendo, a los certificados de clientes los genero con
> ca.crt (custom CA para mi server), en el postgresql.conf tengo ssl_ca_file
> = /var/lib/postgres/13/ssl/ca.crt.
> Entonces para que necesitaría hacer el paso que me decis?
>
> Si ejecuto:
> openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem
>
> Me da:
> chain.pem: OK
>
>
> El lun, 10 mar 2025 a las 15:37, Jairo Graterón (<jgrateron@gmail.com>)
> escribió:
>
>> Puede ser un error en la cadena de confianza.
>>
>> El certificado de Let's Encrypt depende de otra CA,
>>
>> [image: image.png]
>>
>> Se deben agregar los dos certificados en formato PEM en el archivo CA de
>> postgresql.
>>
>> 1. CN=R10
>> 2. CN=ISRG Root X1
>>
>> El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
>> guillermovil@gmail.com>) escribió:
>>
>>> Gracias Juan. Probé eso  y el problema persiste
>>> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
>>> funcionar con Let´s encrypt, ya que si me funcionó con certificados
>>> autofirmados en ambos lados.
>>>
>>>
>>> El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
>>> escribió:
>>>
>>>> existe un comando update-ca-certificates cambia en cada distro....
>>>> salu2
>>>>
>>>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>>>> guillermovil@gmail.com> wrote:
>>>>
>>>>> Enrique, gracias por tu respuesta
>>>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso no
>>>>> es suficiente? acaso mi comando para generarla:
>>>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key
>>>>> -subj "/CN=root-ca"
>>>>> no la agrega automáticamente en las ca conocidas?
>>>>> Te referis del lado del cliente?
>>>>>
>>>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>>>> enrique.herreranoya@gmail.com>) escribió:
>>>>>
>>>>>> lo dice el log:
>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>>>
>>>>>> debes agregar el CA como CA conocido
>>>>>>
>>>>>> saludos
>>>>>>
>>>>>>
>>>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>>>
>>>>>> Buenas tardes! En los últimos días estuve trabajando en el proyecto
>>>>>> de hacer funcionar postgres 13, con autenticación por certificados ssl,
>>>>>> usando openssl y certificados firmados por una propia CA funcionó
>>>>>> correctamente, pero cuando intento hacerlo con certificados Let's Encrypt
>>>>>> para el servidor, no funciona.
>>>>>>
>>>>>> Desde el cliente con credenciales de lets encrypt
>>>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>>>> sslrootcert=./chain.pem"
>>>>>> Error:
>>>>>> psql: error: connection to server at " host.dominio.com" (ip), port
>>>>>> 5432 failed: SSL error: certificate verify failed
>>>>>>
>>>>>> Y en el log de postgres:
>>>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>>>  connection received: host=ip_del_cliente port=55848
>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>>>
>>>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>>>> funcionar.
>>>>>>
>>>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's
>>>>>> Encrypt?
>>>>>>
>>>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>>>
>>>>>> Saludos
>>>>>>
>>>>>>
>>>>>> Enrique Herrera Noya
>>>>>> --
>>>>>> +56 992303151
>>>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>>>> Novell Certified Linux Professional CLP 10
>>>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>>>> RED HAT SPECIALIST
>>>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>>>> How to Sell Red Hat OpenShift for Developers
>>>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>>>> Red Hat Sales Engineer Specialist – Automation
>>>>>>
>>>>>>

Attachments:

image.png (image/png, 130.7K) download view image
image.png (image/png, 61.6K) download view image
ca.pem (application/x-x509-ca-cert, 3.7K) download ^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 13:44           ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 17:31             ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
@ 2025-03-11 18:07               ` Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 18:24                 ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  1 sibling, 1 reply; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-11 18:07 UTC (permalink / raw)
  To: Jairo Graterón <jgrateron@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; pgsql-es-ayuda@lists.postgresql.org

Que bien Jairo!!! yo no logro hacerlo funcionar, pero no se si es porque lo
que pretendo yo es hacer la autenticación solo  por certificados,
Del lado de Postgres en el pg_hba tengo protocolo "hostssl" y autenticación
"cert" y del lado del cliente tengo verify-full aunque sería aceptable
verify-ca.

Vos qué tenés en el pg_hba para el ejemplo que probaste?

El mar, 11 mar 2025 a las 14:31, Jairo Graterón (<jgrateron@gmail.com>)
escribió:

> Hice la prueba con un certificado Lets encrypt y funciona correctamente.
>
> [image: image.png]
>
> También adjunto el archivo ca.pem que contiene los dos certificados CA de
> Lets Encrypt, que se usarán tanto en el servidor como en el cliente.
>
> Observa que en la segunda conexión no usé el certificado cliente (el mismo
> del servidor) porque psql lo omite porque especificaste el modo verify-ca
>
> Hay otros modos como verify-full, y también es posible autenticar sin
> password (usando sólo el certificado) pero eso
> requiere otras configuraciones.
>
> Muchas cosas aprendí de esta presentación
>
> https://momjian.us/main/writings/pgsql/securing.pdf
>
> Saludos.
>
> El mar, 11 mar 2025 a las 9:44, Guillermo E. Villanueva (<
> guillermovil@gmail.com>) escribió:
>
>> Gracias por tu aporte Jairo!
>> Hay algo que no entiendo, a los certificados de clientes los genero con
>> ca.crt (custom CA para mi server), en el postgresql.conf tengo ssl_ca_file
>> = /var/lib/postgres/13/ssl/ca.crt.
>> Entonces para que necesitaría hacer el paso que me decis?
>>
>> Si ejecuto:
>> openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem
>>
>> Me da:
>> chain.pem: OK
>>
>>
>> El lun, 10 mar 2025 a las 15:37, Jairo Graterón (<jgrateron@gmail.com>)
>> escribió:
>>
>>> Puede ser un error en la cadena de confianza.
>>>
>>> El certificado de Let's Encrypt depende de otra CA,
>>>
>>> [image: image.png]
>>>
>>> Se deben agregar los dos certificados en formato PEM en el archivo CA de
>>> postgresql.
>>>
>>> 1. CN=R10
>>> 2. CN=ISRG Root X1
>>>
>>> El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
>>> guillermovil@gmail.com>) escribió:
>>>
>>>> Gracias Juan. Probé eso  y el problema persiste
>>>> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
>>>> funcionar con Let´s encrypt, ya que si me funcionó con certificados
>>>> autofirmados en ambos lados.
>>>>
>>>>
>>>> El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
>>>> escribió:
>>>>
>>>>> existe un comando update-ca-certificates cambia en cada distro....
>>>>> salu2
>>>>>
>>>>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>>>>> guillermovil@gmail.com> wrote:
>>>>>
>>>>>> Enrique, gracias por tu respuesta
>>>>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>>>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso no
>>>>>> es suficiente? acaso mi comando para generarla:
>>>>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key
>>>>>> -subj "/CN=root-ca"
>>>>>> no la agrega automáticamente en las ca conocidas?
>>>>>> Te referis del lado del cliente?
>>>>>>
>>>>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>>>>> enrique.herreranoya@gmail.com>) escribió:
>>>>>>
>>>>>>> lo dice el log:
>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>
>>>>>>> debes agregar el CA como CA conocido
>>>>>>>
>>>>>>> saludos
>>>>>>>
>>>>>>>
>>>>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>>>>
>>>>>>> Buenas tardes! En los últimos días estuve trabajando en el proyecto
>>>>>>> de hacer funcionar postgres 13, con autenticación por certificados ssl,
>>>>>>> usando openssl y certificados firmados por una propia CA funcionó
>>>>>>> correctamente, pero cuando intento hacerlo con certificados Let's Encrypt
>>>>>>> para el servidor, no funciona.
>>>>>>>
>>>>>>> Desde el cliente con credenciales de lets encrypt
>>>>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>>>>> sslrootcert=./chain.pem"
>>>>>>> Error:
>>>>>>> psql: error: connection to server at " host.dominio.com" (ip), port
>>>>>>> 5432 failed: SSL error: certificate verify failed
>>>>>>>
>>>>>>> Y en el log de postgres:
>>>>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>  connection received: host=ip_del_cliente port=55848
>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>
>>>>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>>>>> funcionar.
>>>>>>>
>>>>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's
>>>>>>> Encrypt?
>>>>>>>
>>>>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>>>>
>>>>>>> Saludos
>>>>>>>
>>>>>>>
>>>>>>> Enrique Herrera Noya
>>>>>>> --
>>>>>>> +56 992303151
>>>>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>>>>> Novell Certified Linux Professional CLP 10
>>>>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>>>>> RED HAT SPECIALIST
>>>>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>>>>> How to Sell Red Hat OpenShift for Developers
>>>>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>>>>> Red Hat Sales Engineer Specialist – Automation
>>>>>>>
>>>>>>>

Attachments:

image.png (image/png, 130.7K) download view image
image.png (image/png, 61.6K) download view image
^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 13:44           ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 17:31             ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 18:07               ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-11 18:24                 ` Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 18:32                   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  0 siblings, 1 reply; 21+ messages in thread

From: Jairo Graterón @ 2025-03-11 18:24 UTC (permalink / raw)
  To: Guillermo E. Villanueva <guillermovil@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; Ayuda <pgsql-es-ayuda@lists.postgresql.org>

No, con Lets Encrypt no puedes autenticar con certificado, solo comprobar
que el servidor es quien dice ser y prevenir el ataque main in the middle.

Y no funciona porque el CN del certificado debe ser un usuario de
postgresql y lets encrypt solo entrega certificados de dominios.

Tendrías que crear tu propia PKI usando ejbca, xca o keystore Explorer.


El mar, 11 de mar de 2025, 2:08 p. m., Guillermo E. Villanueva <
guillermovil@gmail.com> escribió:

> Que bien Jairo!!! yo no logro hacerlo funcionar, pero no se si es porque
> lo que pretendo yo es hacer la autenticación solo  por certificados,
> Del lado de Postgres en el pg_hba tengo protocolo "hostssl" y
> autenticación "cert" y del lado del cliente tengo verify-full aunque sería
> aceptable verify-ca.
>
> Vos qué tenés en el pg_hba para el ejemplo que probaste?
>
> El mar, 11 mar 2025 a las 14:31, Jairo Graterón (<jgrateron@gmail.com>)
> escribió:
>
>> Hice la prueba con un certificado Lets encrypt y funciona correctamente.
>>
>> [image: image.png]
>>
>> También adjunto el archivo ca.pem que contiene los dos certificados CA de
>> Lets Encrypt, que se usarán tanto en el servidor como en el cliente.
>>
>> Observa que en la segunda conexión no usé el certificado cliente (el
>> mismo del servidor) porque psql lo omite porque especificaste el modo
>> verify-ca
>>
>> Hay otros modos como verify-full, y también es posible autenticar sin
>> password (usando sólo el certificado) pero eso
>> requiere otras configuraciones.
>>
>> Muchas cosas aprendí de esta presentación
>>
>> https://momjian.us/main/writings/pgsql/securing.pdf
>>
>> Saludos.
>>
>> El mar, 11 mar 2025 a las 9:44, Guillermo E. Villanueva (<
>> guillermovil@gmail.com>) escribió:
>>
>>> Gracias por tu aporte Jairo!
>>> Hay algo que no entiendo, a los certificados de clientes los genero con
>>> ca.crt (custom CA para mi server), en el postgresql.conf tengo ssl_ca_file
>>> = /var/lib/postgres/13/ssl/ca.crt.
>>> Entonces para que necesitaría hacer el paso que me decis?
>>>
>>> Si ejecuto:
>>> openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem
>>>
>>> Me da:
>>> chain.pem: OK
>>>
>>>
>>> El lun, 10 mar 2025 a las 15:37, Jairo Graterón (<jgrateron@gmail.com>)
>>> escribió:
>>>
>>>> Puede ser un error en la cadena de confianza.
>>>>
>>>> El certificado de Let's Encrypt depende de otra CA,
>>>>
>>>> [image: image.png]
>>>>
>>>> Se deben agregar los dos certificados en formato PEM en el archivo CA
>>>> de postgresql.
>>>>
>>>> 1. CN=R10
>>>> 2. CN=ISRG Root X1
>>>>
>>>> El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
>>>> guillermovil@gmail.com>) escribió:
>>>>
>>>>> Gracias Juan. Probé eso  y el problema persiste
>>>>> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
>>>>> funcionar con Let´s encrypt, ya que si me funcionó con certificados
>>>>> autofirmados en ambos lados.
>>>>>
>>>>>
>>>>> El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
>>>>> escribió:
>>>>>
>>>>>> existe un comando update-ca-certificates cambia en cada distro....
>>>>>> salu2
>>>>>>
>>>>>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>>>>>> guillermovil@gmail.com> wrote:
>>>>>>
>>>>>>> Enrique, gracias por tu respuesta
>>>>>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>>>>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso
>>>>>>> no es suficiente? acaso mi comando para generarla:
>>>>>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key
>>>>>>> -subj "/CN=root-ca"
>>>>>>> no la agrega automáticamente en las ca conocidas?
>>>>>>> Te referis del lado del cliente?
>>>>>>>
>>>>>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>>>>>> enrique.herreranoya@gmail.com>) escribió:
>>>>>>>
>>>>>>>> lo dice el log:
>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>
>>>>>>>> debes agregar el CA como CA conocido
>>>>>>>>
>>>>>>>> saludos
>>>>>>>>
>>>>>>>>
>>>>>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>>>>>
>>>>>>>> Buenas tardes! En los últimos días estuve trabajando en el proyecto
>>>>>>>> de hacer funcionar postgres 13, con autenticación por certificados ssl,
>>>>>>>> usando openssl y certificados firmados por una propia CA funcionó
>>>>>>>> correctamente, pero cuando intento hacerlo con certificados Let's Encrypt
>>>>>>>> para el servidor, no funciona.
>>>>>>>>
>>>>>>>> Desde el cliente con credenciales de lets encrypt
>>>>>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>>>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>>>>>> sslrootcert=./chain.pem"
>>>>>>>> Error:
>>>>>>>> psql: error: connection to server at " host.dominio.com" (ip),
>>>>>>>> port 5432 failed: SSL error: certificate verify failed
>>>>>>>>
>>>>>>>> Y en el log de postgres:
>>>>>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>  connection received: host=ip_del_cliente port=55848
>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>
>>>>>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>>>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>>>>>> funcionar.
>>>>>>>>
>>>>>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's
>>>>>>>> Encrypt?
>>>>>>>>
>>>>>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>>>>>
>>>>>>>> Saludos
>>>>>>>>
>>>>>>>>
>>>>>>>> Enrique Herrera Noya
>>>>>>>> --
>>>>>>>> +56 992303151
>>>>>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>>>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>>>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>>>>>> Novell Certified Linux Professional CLP 10
>>>>>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>>>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>>>>>> RED HAT SPECIALIST
>>>>>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>>>>>> How to Sell Red Hat OpenShift for Developers
>>>>>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>>>>>> Red Hat Sales Engineer Specialist – Automation
>>>>>>>>
>>>>>>>>

Attachments:

image.png (image/png, 130.7K) download view image
image.png (image/png, 61.6K) download view image
^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 13:44           ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 17:31             ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 18:07               ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 18:24                 ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
@ 2025-03-11 18:32                   ` Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 18:33                     ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  0 siblings, 1 reply; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-11 18:32 UTC (permalink / raw)
  To: Jairo Graterón <jgrateron@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; Ayuda <pgsql-es-ayuda@lists.postgresql.org>

osea que tendría que configurar en el pg_hba protocolo "hostssl" y
autenticación "md5" y del lado del cliente dejo verify-ca?

El mar, 11 mar 2025 a las 15:25, Jairo Graterón (<jgrateron@gmail.com>)
escribió:

> No, con Lets Encrypt no puedes autenticar con certificado, solo comprobar
> que el servidor es quien dice ser y prevenir el ataque main in the middle.
>
> Y no funciona porque el CN del certificado debe ser un usuario de
> postgresql y lets encrypt solo entrega certificados de dominios.
>
> Tendrías que crear tu propia PKI usando ejbca, xca o keystore Explorer.
>
>
> El mar, 11 de mar de 2025, 2:08 p. m., Guillermo E. Villanueva <
> guillermovil@gmail.com> escribió:
>
>> Que bien Jairo!!! yo no logro hacerlo funcionar, pero no se si es porque
>> lo que pretendo yo es hacer la autenticación solo  por certificados,
>> Del lado de Postgres en el pg_hba tengo protocolo "hostssl" y
>> autenticación "cert" y del lado del cliente tengo verify-full aunque sería
>> aceptable verify-ca.
>>
>> Vos qué tenés en el pg_hba para el ejemplo que probaste?
>>
>> El mar, 11 mar 2025 a las 14:31, Jairo Graterón (<jgrateron@gmail.com>)
>> escribió:
>>
>>> Hice la prueba con un certificado Lets encrypt y funciona correctamente.
>>>
>>> [image: image.png]
>>>
>>> También adjunto el archivo ca.pem que contiene los dos certificados CA
>>> de Lets Encrypt, que se usarán tanto en el servidor como en el cliente.
>>>
>>> Observa que en la segunda conexión no usé el certificado cliente (el
>>> mismo del servidor) porque psql lo omite porque especificaste el modo
>>> verify-ca
>>>
>>> Hay otros modos como verify-full, y también es posible autenticar sin
>>> password (usando sólo el certificado) pero eso
>>> requiere otras configuraciones.
>>>
>>> Muchas cosas aprendí de esta presentación
>>>
>>> https://momjian.us/main/writings/pgsql/securing.pdf
>>>
>>> Saludos.
>>>
>>> El mar, 11 mar 2025 a las 9:44, Guillermo E. Villanueva (<
>>> guillermovil@gmail.com>) escribió:
>>>
>>>> Gracias por tu aporte Jairo!
>>>> Hay algo que no entiendo, a los certificados de clientes los genero con
>>>> ca.crt (custom CA para mi server), en el postgresql.conf tengo ssl_ca_file
>>>> = /var/lib/postgres/13/ssl/ca.crt.
>>>> Entonces para que necesitaría hacer el paso que me decis?
>>>>
>>>> Si ejecuto:
>>>> openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem
>>>>
>>>> Me da:
>>>> chain.pem: OK
>>>>
>>>>
>>>> El lun, 10 mar 2025 a las 15:37, Jairo Graterón (<jgrateron@gmail.com>)
>>>> escribió:
>>>>
>>>>> Puede ser un error en la cadena de confianza.
>>>>>
>>>>> El certificado de Let's Encrypt depende de otra CA,
>>>>>
>>>>> [image: image.png]
>>>>>
>>>>> Se deben agregar los dos certificados en formato PEM en el archivo CA
>>>>> de postgresql.
>>>>>
>>>>> 1. CN=R10
>>>>> 2. CN=ISRG Root X1
>>>>>
>>>>> El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
>>>>> guillermovil@gmail.com>) escribió:
>>>>>
>>>>>> Gracias Juan. Probé eso  y el problema persiste
>>>>>> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
>>>>>> funcionar con Let´s encrypt, ya que si me funcionó con certificados
>>>>>> autofirmados en ambos lados.
>>>>>>
>>>>>>
>>>>>> El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
>>>>>> escribió:
>>>>>>
>>>>>>> existe un comando update-ca-certificates cambia en cada distro....
>>>>>>> salu2
>>>>>>>
>>>>>>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>>>>>>> guillermovil@gmail.com> wrote:
>>>>>>>
>>>>>>>> Enrique, gracias por tu respuesta
>>>>>>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>>>>>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso
>>>>>>>> no es suficiente? acaso mi comando para generarla:
>>>>>>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key
>>>>>>>> -subj "/CN=root-ca"
>>>>>>>> no la agrega automáticamente en las ca conocidas?
>>>>>>>> Te referis del lado del cliente?
>>>>>>>>
>>>>>>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>>>>>>> enrique.herreranoya@gmail.com>) escribió:
>>>>>>>>
>>>>>>>>> lo dice el log:
>>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>>
>>>>>>>>> debes agregar el CA como CA conocido
>>>>>>>>>
>>>>>>>>> saludos
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>>>>>>
>>>>>>>>> Buenas tardes! En los últimos días estuve trabajando en el
>>>>>>>>> proyecto de hacer funcionar postgres 13, con autenticación por certificados
>>>>>>>>> ssl, usando openssl y certificados firmados por una propia CA funcionó
>>>>>>>>> correctamente, pero cuando intento hacerlo con certificados Let's Encrypt
>>>>>>>>> para el servidor, no funciona.
>>>>>>>>>
>>>>>>>>> Desde el cliente con credenciales de lets encrypt
>>>>>>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>>>>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>>>>>>> sslrootcert=./chain.pem"
>>>>>>>>> Error:
>>>>>>>>> psql: error: connection to server at " host.dominio.com" (ip),
>>>>>>>>> port 5432 failed: SSL error: certificate verify failed
>>>>>>>>>
>>>>>>>>> Y en el log de postgres:
>>>>>>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>>  connection received: host=ip_del_cliente port=55848
>>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>>
>>>>>>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>>>>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>>>>>>> funcionar.
>>>>>>>>>
>>>>>>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's
>>>>>>>>> Encrypt?
>>>>>>>>>
>>>>>>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>>>>>>
>>>>>>>>> Saludos
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Enrique Herrera Noya
>>>>>>>>> --
>>>>>>>>> +56 992303151
>>>>>>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>>>>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>>>>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>>>>>>> Novell Certified Linux Professional CLP 10
>>>>>>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>>>>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>>>>>>> RED HAT SPECIALIST
>>>>>>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>>>>>>> How to Sell Red Hat OpenShift for Developers
>>>>>>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>>>>>>> Red Hat Sales Engineer Specialist – Automation
>>>>>>>>>
>>>>>>>>>

Attachments:

image.png (image/png, 130.7K) download view image
image.png (image/png, 61.6K) download view image
^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 13:44           ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 17:31             ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 18:07               ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 18:24                 ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 18:32                   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-11 18:33                     ` Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 18:36                       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  0 siblings, 1 reply; 21+ messages in thread

From: Jairo Graterón @ 2025-03-11 18:33 UTC (permalink / raw)
  To: Guillermo E. Villanueva <guillermovil@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; Ayuda <pgsql-es-ayuda@lists.postgresql.org>

Si correcto.

El mar, 11 de mar de 2025, 2:32 p. m., Guillermo E. Villanueva <
guillermovil@gmail.com> escribió:

> osea que tendría que configurar en el pg_hba protocolo "hostssl" y
> autenticación "md5" y del lado del cliente dejo verify-ca?
>
> El mar, 11 mar 2025 a las 15:25, Jairo Graterón (<jgrateron@gmail.com>)
> escribió:
>
>> No, con Lets Encrypt no puedes autenticar con certificado, solo comprobar
>> que el servidor es quien dice ser y prevenir el ataque main in the middle.
>>
>> Y no funciona porque el CN del certificado debe ser un usuario de
>> postgresql y lets encrypt solo entrega certificados de dominios.
>>
>> Tendrías que crear tu propia PKI usando ejbca, xca o keystore Explorer.
>>
>>
>> El mar, 11 de mar de 2025, 2:08 p. m., Guillermo E. Villanueva <
>> guillermovil@gmail.com> escribió:
>>
>>> Que bien Jairo!!! yo no logro hacerlo funcionar, pero no se si es porque
>>> lo que pretendo yo es hacer la autenticación solo  por certificados,
>>> Del lado de Postgres en el pg_hba tengo protocolo "hostssl" y
>>> autenticación "cert" y del lado del cliente tengo verify-full aunque sería
>>> aceptable verify-ca.
>>>
>>> Vos qué tenés en el pg_hba para el ejemplo que probaste?
>>>
>>> El mar, 11 mar 2025 a las 14:31, Jairo Graterón (<jgrateron@gmail.com>)
>>> escribió:
>>>
>>>> Hice la prueba con un certificado Lets encrypt y funciona correctamente.
>>>>
>>>> [image: image.png]
>>>>
>>>> También adjunto el archivo ca.pem que contiene los dos certificados CA
>>>> de Lets Encrypt, que se usarán tanto en el servidor como en el cliente.
>>>>
>>>> Observa que en la segunda conexión no usé el certificado cliente (el
>>>> mismo del servidor) porque psql lo omite porque especificaste el modo
>>>> verify-ca
>>>>
>>>> Hay otros modos como verify-full, y también es posible autenticar sin
>>>> password (usando sólo el certificado) pero eso
>>>> requiere otras configuraciones.
>>>>
>>>> Muchas cosas aprendí de esta presentación
>>>>
>>>> https://momjian.us/main/writings/pgsql/securing.pdf
>>>>
>>>> Saludos.
>>>>
>>>> El mar, 11 mar 2025 a las 9:44, Guillermo E. Villanueva (<
>>>> guillermovil@gmail.com>) escribió:
>>>>
>>>>> Gracias por tu aporte Jairo!
>>>>> Hay algo que no entiendo, a los certificados de clientes los genero
>>>>> con ca.crt (custom CA para mi server), en el postgresql.conf tengo
>>>>> ssl_ca_file = /var/lib/postgres/13/ssl/ca.crt.
>>>>> Entonces para que necesitaría hacer el paso que me decis?
>>>>>
>>>>> Si ejecuto:
>>>>> openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem
>>>>>
>>>>> Me da:
>>>>> chain.pem: OK
>>>>>
>>>>>
>>>>> El lun, 10 mar 2025 a las 15:37, Jairo Graterón (<jgrateron@gmail.com>)
>>>>> escribió:
>>>>>
>>>>>> Puede ser un error en la cadena de confianza.
>>>>>>
>>>>>> El certificado de Let's Encrypt depende de otra CA,
>>>>>>
>>>>>> [image: image.png]
>>>>>>
>>>>>> Se deben agregar los dos certificados en formato PEM en el archivo CA
>>>>>> de postgresql.
>>>>>>
>>>>>> 1. CN=R10
>>>>>> 2. CN=ISRG Root X1
>>>>>>
>>>>>> El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
>>>>>> guillermovil@gmail.com>) escribió:
>>>>>>
>>>>>>> Gracias Juan. Probé eso  y el problema persiste
>>>>>>> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
>>>>>>> funcionar con Let´s encrypt, ya que si me funcionó con certificados
>>>>>>> autofirmados en ambos lados.
>>>>>>>
>>>>>>>
>>>>>>> El lun, 10 mar 2025 a las 15:00, Juan (<
>>>>>>> smalltalker.marcelo@gmail.com>) escribió:
>>>>>>>
>>>>>>>> existe un comando update-ca-certificates cambia en cada distro....
>>>>>>>> salu2
>>>>>>>>
>>>>>>>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>>>>>>>> guillermovil@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Enrique, gracias por tu respuesta
>>>>>>>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>>>>>>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso
>>>>>>>>> no es suficiente? acaso mi comando para generarla:
>>>>>>>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key
>>>>>>>>> -subj "/CN=root-ca"
>>>>>>>>> no la agrega automáticamente en las ca conocidas?
>>>>>>>>> Te referis del lado del cliente?
>>>>>>>>>
>>>>>>>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>>>>>>>> enrique.herreranoya@gmail.com>) escribió:
>>>>>>>>>
>>>>>>>>>> lo dice el log:
>>>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>>>
>>>>>>>>>> debes agregar el CA como CA conocido
>>>>>>>>>>
>>>>>>>>>> saludos
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>>>>>>>
>>>>>>>>>> Buenas tardes! En los últimos días estuve trabajando en el
>>>>>>>>>> proyecto de hacer funcionar postgres 13, con autenticación por certificados
>>>>>>>>>> ssl, usando openssl y certificados firmados por una propia CA funcionó
>>>>>>>>>> correctamente, pero cuando intento hacerlo con certificados Let's Encrypt
>>>>>>>>>> para el servidor, no funciona.
>>>>>>>>>>
>>>>>>>>>> Desde el cliente con credenciales de lets encrypt
>>>>>>>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>>>>>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>>>>>>>> sslrootcert=./chain.pem"
>>>>>>>>>> Error:
>>>>>>>>>> psql: error: connection to server at " host.dominio.com" (ip),
>>>>>>>>>> port 5432 failed: SSL error: certificate verify failed
>>>>>>>>>>
>>>>>>>>>> Y en el log de postgres:
>>>>>>>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>>>  connection received: host=ip_del_cliente port=55848
>>>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>>>
>>>>>>>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>>>>>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>>>>>>>> funcionar.
>>>>>>>>>>
>>>>>>>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's
>>>>>>>>>> Encrypt?
>>>>>>>>>>
>>>>>>>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>>>>>>>
>>>>>>>>>> Saludos
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Enrique Herrera Noya
>>>>>>>>>> --
>>>>>>>>>> +56 992303151
>>>>>>>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>>>>>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>>>>>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>>>>>>>> Novell Certified Linux Professional CLP 10
>>>>>>>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>>>>>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>>>>>>>> RED HAT SPECIALIST
>>>>>>>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>>>>>>>> How to Sell Red Hat OpenShift for Developers
>>>>>>>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>>>>>>>> Red Hat Sales Engineer Specialist – Automation
>>>>>>>>>>
>>>>>>>>>>

Attachments:

image.png (image/png, 130.7K) download view image
image.png (image/png, 61.6K) download view image
^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 13:44           ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 17:31             ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 18:07               ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 18:24                 ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 18:32                   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 18:33                     ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
@ 2025-03-11 18:36                       ` Guillermo E. Villanueva <guillermovil@gmail.com>
  0 siblings, 0 replies; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-11 18:36 UTC (permalink / raw)
  To: Jairo Graterón <jgrateron@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; Ayuda <pgsql-es-ayuda@lists.postgresql.org>

Muchas gracias Jairo, llevo días intentando hacerlo andar, nunca iba a
poder 🤦

El mar, 11 mar 2025 a las 15:34, Jairo Graterón (<jgrateron@gmail.com>)
escribió:

> Si correcto.
>
> El mar, 11 de mar de 2025, 2:32 p. m., Guillermo E. Villanueva <
> guillermovil@gmail.com> escribió:
>
>> osea que tendría que configurar en el pg_hba protocolo "hostssl" y
>> autenticación "md5" y del lado del cliente dejo verify-ca?
>>
>> El mar, 11 mar 2025 a las 15:25, Jairo Graterón (<jgrateron@gmail.com>)
>> escribió:
>>
>>> No, con Lets Encrypt no puedes autenticar con certificado, solo
>>> comprobar que el servidor es quien dice ser y prevenir el ataque main in
>>> the middle.
>>>
>>> Y no funciona porque el CN del certificado debe ser un usuario de
>>> postgresql y lets encrypt solo entrega certificados de dominios.
>>>
>>> Tendrías que crear tu propia PKI usando ejbca, xca o keystore Explorer.
>>>
>>>
>>> El mar, 11 de mar de 2025, 2:08 p. m., Guillermo E. Villanueva <
>>> guillermovil@gmail.com> escribió:
>>>
>>>> Que bien Jairo!!! yo no logro hacerlo funcionar, pero no se si es
>>>> porque lo que pretendo yo es hacer la autenticación solo  por certificados,
>>>> Del lado de Postgres en el pg_hba tengo protocolo "hostssl" y
>>>> autenticación "cert" y del lado del cliente tengo verify-full aunque sería
>>>> aceptable verify-ca.
>>>>
>>>> Vos qué tenés en el pg_hba para el ejemplo que probaste?
>>>>
>>>> El mar, 11 mar 2025 a las 14:31, Jairo Graterón (<jgrateron@gmail.com>)
>>>> escribió:
>>>>
>>>>> Hice la prueba con un certificado Lets encrypt y funciona
>>>>> correctamente.
>>>>>
>>>>> [image: image.png]
>>>>>
>>>>> También adjunto el archivo ca.pem que contiene los dos certificados CA
>>>>> de Lets Encrypt, que se usarán tanto en el servidor como en el cliente.
>>>>>
>>>>> Observa que en la segunda conexión no usé el certificado cliente (el
>>>>> mismo del servidor) porque psql lo omite porque especificaste el modo
>>>>> verify-ca
>>>>>
>>>>> Hay otros modos como verify-full, y también es posible autenticar sin
>>>>> password (usando sólo el certificado) pero eso
>>>>> requiere otras configuraciones.
>>>>>
>>>>> Muchas cosas aprendí de esta presentación
>>>>>
>>>>> https://momjian.us/main/writings/pgsql/securing.pdf
>>>>>
>>>>> Saludos.
>>>>>
>>>>> El mar, 11 mar 2025 a las 9:44, Guillermo E. Villanueva (<
>>>>> guillermovil@gmail.com>) escribió:
>>>>>
>>>>>> Gracias por tu aporte Jairo!
>>>>>> Hay algo que no entiendo, a los certificados de clientes los genero
>>>>>> con ca.crt (custom CA para mi server), en el postgresql.conf tengo
>>>>>> ssl_ca_file = /var/lib/postgres/13/ssl/ca.crt.
>>>>>> Entonces para que necesitaría hacer el paso que me decis?
>>>>>>
>>>>>> Si ejecuto:
>>>>>> openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem
>>>>>>
>>>>>> Me da:
>>>>>> chain.pem: OK
>>>>>>
>>>>>>
>>>>>> El lun, 10 mar 2025 a las 15:37, Jairo Graterón (<jgrateron@gmail.com>)
>>>>>> escribió:
>>>>>>
>>>>>>> Puede ser un error en la cadena de confianza.
>>>>>>>
>>>>>>> El certificado de Let's Encrypt depende de otra CA,
>>>>>>>
>>>>>>> [image: image.png]
>>>>>>>
>>>>>>> Se deben agregar los dos certificados en formato PEM en el archivo
>>>>>>> CA de postgresql.
>>>>>>>
>>>>>>> 1. CN=R10
>>>>>>> 2. CN=ISRG Root X1
>>>>>>>
>>>>>>> El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
>>>>>>> guillermovil@gmail.com>) escribió:
>>>>>>>
>>>>>>>> Gracias Juan. Probé eso  y el problema persiste
>>>>>>>> Mi pregunta apunta mas a ver si hay alguien que lo haya podido
>>>>>>>> hacer funcionar con Let´s encrypt, ya que si me funcionó con certificados
>>>>>>>> autofirmados en ambos lados.
>>>>>>>>
>>>>>>>>
>>>>>>>> El lun, 10 mar 2025 a las 15:00, Juan (<
>>>>>>>> smalltalker.marcelo@gmail.com>) escribió:
>>>>>>>>
>>>>>>>>> existe un comando update-ca-certificates cambia en cada distro....
>>>>>>>>> salu2
>>>>>>>>>
>>>>>>>>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>>>>>>>>> guillermovil@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Enrique, gracias por tu respuesta
>>>>>>>>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>>>>>>>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt'
>>>>>>>>>> eso no es suficiente? acaso mi comando para generarla:
>>>>>>>>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout
>>>>>>>>>> ca.key -subj "/CN=root-ca"
>>>>>>>>>> no la agrega automáticamente en las ca conocidas?
>>>>>>>>>> Te referis del lado del cliente?
>>>>>>>>>>
>>>>>>>>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>>>>>>>>> enrique.herreranoya@gmail.com>) escribió:
>>>>>>>>>>
>>>>>>>>>>> lo dice el log:
>>>>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>>>>
>>>>>>>>>>> debes agregar el CA como CA conocido
>>>>>>>>>>>
>>>>>>>>>>> saludos
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>>>>>>>>
>>>>>>>>>>> Buenas tardes! En los últimos días estuve trabajando en el
>>>>>>>>>>> proyecto de hacer funcionar postgres 13, con autenticación por certificados
>>>>>>>>>>> ssl, usando openssl y certificados firmados por una propia CA funcionó
>>>>>>>>>>> correctamente, pero cuando intento hacerlo con certificados Let's Encrypt
>>>>>>>>>>> para el servidor, no funciona.
>>>>>>>>>>>
>>>>>>>>>>> Desde el cliente con credenciales de lets encrypt
>>>>>>>>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>>>>>>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>>>>>>>>> sslrootcert=./chain.pem"
>>>>>>>>>>> Error:
>>>>>>>>>>> psql: error: connection to server at " host.dominio.com" (ip),
>>>>>>>>>>> port 5432 failed: SSL error: certificate verify failed
>>>>>>>>>>>
>>>>>>>>>>> Y en el log de postgres:
>>>>>>>>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>>>>  connection received: host=ip_del_cliente port=55848
>>>>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>>>>
>>>>>>>>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>>>>>>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>>>>>>>>> funcionar.
>>>>>>>>>>>
>>>>>>>>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's
>>>>>>>>>>> Encrypt?
>>>>>>>>>>>
>>>>>>>>>>> Desde ya muchas gracias por leer y por los comentarios que
>>>>>>>>>>> tengan.
>>>>>>>>>>>
>>>>>>>>>>> Saludos
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Enrique Herrera Noya
>>>>>>>>>>> --
>>>>>>>>>>> +56 992303151
>>>>>>>>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>>>>>>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>>>>>>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>>>>>>>>> Novell Certified Linux Professional CLP 10
>>>>>>>>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>>>>>>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>>>>>>>>> RED HAT SPECIALIST
>>>>>>>>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>>>>>>>>> How to Sell Red Hat OpenShift for Developers
>>>>>>>>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>>>>>>>>> Red Hat Sales Engineer Specialist – Automation
>>>>>>>>>>>
>>>>>>>>>>>

Attachments:

image.png (image/png, 130.7K) download view image
image.png (image/png, 61.6K) download view image
^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 13:44           ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 17:31             ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
@ 2025-03-12 15:27               ` Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-12 15:29                 ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  1 sibling, 1 reply; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-12 15:27 UTC (permalink / raw)
  To: Jairo Graterón <jgrateron@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; pgsql-es-ayuda@lists.postgresql.org

Jairo gracias a tu bendito ca.pem pude resolver el problema y ya puedo
conectar un psql a postgres con certificados.
Muchas gracias a todos por los aportes

El mar, 11 mar 2025 a las 14:31, Jairo Graterón (<jgrateron@gmail.com>)
escribió:

> Hice la prueba con un certificado Lets encrypt y funciona correctamente.
>
> [image: image.png]
>
> También adjunto el archivo ca.pem que contiene los dos certificados CA de
> Lets Encrypt, que se usarán tanto en el servidor como en el cliente.
>
> Observa que en la segunda conexión no usé el certificado cliente (el mismo
> del servidor) porque psql lo omite porque especificaste el modo verify-ca
>
> Hay otros modos como verify-full, y también es posible autenticar sin
> password (usando sólo el certificado) pero eso
> requiere otras configuraciones.
>
> Muchas cosas aprendí de esta presentación
>
> https://momjian.us/main/writings/pgsql/securing.pdf
>
> Saludos.
>
> El mar, 11 mar 2025 a las 9:44, Guillermo E. Villanueva (<
> guillermovil@gmail.com>) escribió:
>
>> Gracias por tu aporte Jairo!
>> Hay algo que no entiendo, a los certificados de clientes los genero con
>> ca.crt (custom CA para mi server), en el postgresql.conf tengo ssl_ca_file
>> = /var/lib/postgres/13/ssl/ca.crt.
>> Entonces para que necesitaría hacer el paso que me decis?
>>
>> Si ejecuto:
>> openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem
>>
>> Me da:
>> chain.pem: OK
>>
>>
>> El lun, 10 mar 2025 a las 15:37, Jairo Graterón (<jgrateron@gmail.com>)
>> escribió:
>>
>>> Puede ser un error en la cadena de confianza.
>>>
>>> El certificado de Let's Encrypt depende de otra CA,
>>>
>>> [image: image.png]
>>>
>>> Se deben agregar los dos certificados en formato PEM en el archivo CA de
>>> postgresql.
>>>
>>> 1. CN=R10
>>> 2. CN=ISRG Root X1
>>>
>>> El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
>>> guillermovil@gmail.com>) escribió:
>>>
>>>> Gracias Juan. Probé eso  y el problema persiste
>>>> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
>>>> funcionar con Let´s encrypt, ya que si me funcionó con certificados
>>>> autofirmados en ambos lados.
>>>>
>>>>
>>>> El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
>>>> escribió:
>>>>
>>>>> existe un comando update-ca-certificates cambia en cada distro....
>>>>> salu2
>>>>>
>>>>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>>>>> guillermovil@gmail.com> wrote:
>>>>>
>>>>>> Enrique, gracias por tu respuesta
>>>>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>>>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso no
>>>>>> es suficiente? acaso mi comando para generarla:
>>>>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key
>>>>>> -subj "/CN=root-ca"
>>>>>> no la agrega automáticamente en las ca conocidas?
>>>>>> Te referis del lado del cliente?
>>>>>>
>>>>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>>>>> enrique.herreranoya@gmail.com>) escribió:
>>>>>>
>>>>>>> lo dice el log:
>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>
>>>>>>> debes agregar el CA como CA conocido
>>>>>>>
>>>>>>> saludos
>>>>>>>
>>>>>>>
>>>>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>>>>
>>>>>>> Buenas tardes! En los últimos días estuve trabajando en el proyecto
>>>>>>> de hacer funcionar postgres 13, con autenticación por certificados ssl,
>>>>>>> usando openssl y certificados firmados por una propia CA funcionó
>>>>>>> correctamente, pero cuando intento hacerlo con certificados Let's Encrypt
>>>>>>> para el servidor, no funciona.
>>>>>>>
>>>>>>> Desde el cliente con credenciales de lets encrypt
>>>>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>>>>> sslrootcert=./chain.pem"
>>>>>>> Error:
>>>>>>> psql: error: connection to server at " host.dominio.com" (ip), port
>>>>>>> 5432 failed: SSL error: certificate verify failed
>>>>>>>
>>>>>>> Y en el log de postgres:
>>>>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>  connection received: host=ip_del_cliente port=55848
>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could
>>>>>>> not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>
>>>>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>>>>> funcionar.
>>>>>>>
>>>>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's
>>>>>>> Encrypt?
>>>>>>>
>>>>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>>>>
>>>>>>> Saludos
>>>>>>>
>>>>>>>
>>>>>>> Enrique Herrera Noya
>>>>>>> --
>>>>>>> +56 992303151
>>>>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>>>>> Novell Certified Linux Professional CLP 10
>>>>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>>>>> RED HAT SPECIALIST
>>>>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>>>>> How to Sell Red Hat OpenShift for Developers
>>>>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>>>>> Red Hat Sales Engineer Specialist – Automation
>>>>>>>
>>>>>>>

Attachments:

image.png (image/png, 130.7K) download view image
image.png (image/png, 61.6K) download view image
^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 16:27 ` Re: Autenticación TSL Enrique Herrera Noya <enrique.herreranoya@gmail.com>
  2025-03-10 17:00   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 17:59     ` Re: Autenticación TSL Juan <smalltalker.marcelo@gmail.com>
  2025-03-10 18:19       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 18:37         ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-11 13:44           ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 17:31             ` Re: Autenticación TSL Jairo Graterón <jgrateron@gmail.com>
  2025-03-12 15:27               ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-12 15:29                 ` Jairo Graterón <jgrateron@gmail.com>
  0 siblings, 0 replies; 21+ messages in thread

From: Jairo Graterón @ 2025-03-12 15:29 UTC (permalink / raw)
  To: Guillermo E. Villanueva <guillermovil@gmail.com>; +Cc: Juan <smalltalker.marcelo@gmail.com>; Enrique Herrera Noya <enrique.herreranoya@gmail.com>; pgsql-es-ayuda@lists.postgresql.org

Excelente.

El mié, 12 mar 2025 a las 11:27, Guillermo E. Villanueva (<
guillermovil@gmail.com>) escribió:

> Jairo gracias a tu bendito ca.pem pude resolver el problema y ya puedo
> conectar un psql a postgres con certificados.
> Muchas gracias a todos por los aportes
>
> El mar, 11 mar 2025 a las 14:31, Jairo Graterón (<jgrateron@gmail.com>)
> escribió:
>
>> Hice la prueba con un certificado Lets encrypt y funciona correctamente.
>>
>> [image: image.png]
>>
>> También adjunto el archivo ca.pem que contiene los dos certificados CA de
>> Lets Encrypt, que se usarán tanto en el servidor como en el cliente.
>>
>> Observa que en la segunda conexión no usé el certificado cliente (el
>> mismo del servidor) porque psql lo omite porque especificaste el modo
>> verify-ca
>>
>> Hay otros modos como verify-full, y también es posible autenticar sin
>> password (usando sólo el certificado) pero eso
>> requiere otras configuraciones.
>>
>> Muchas cosas aprendí de esta presentación
>>
>> https://momjian.us/main/writings/pgsql/securing.pdf
>>
>> Saludos.
>>
>> El mar, 11 mar 2025 a las 9:44, Guillermo E. Villanueva (<
>> guillermovil@gmail.com>) escribió:
>>
>>> Gracias por tu aporte Jairo!
>>> Hay algo que no entiendo, a los certificados de clientes los genero con
>>> ca.crt (custom CA para mi server), en el postgresql.conf tengo ssl_ca_file
>>> = /var/lib/postgres/13/ssl/ca.crt.
>>> Entonces para que necesitaría hacer el paso que me decis?
>>>
>>> Si ejecuto:
>>> openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt chain.pem
>>>
>>> Me da:
>>> chain.pem: OK
>>>
>>>
>>> El lun, 10 mar 2025 a las 15:37, Jairo Graterón (<jgrateron@gmail.com>)
>>> escribió:
>>>
>>>> Puede ser un error en la cadena de confianza.
>>>>
>>>> El certificado de Let's Encrypt depende de otra CA,
>>>>
>>>> [image: image.png]
>>>>
>>>> Se deben agregar los dos certificados en formato PEM en el archivo CA
>>>> de postgresql.
>>>>
>>>> 1. CN=R10
>>>> 2. CN=ISRG Root X1
>>>>
>>>> El lun, 10 mar 2025 a las 14:19, Guillermo E. Villanueva (<
>>>> guillermovil@gmail.com>) escribió:
>>>>
>>>>> Gracias Juan. Probé eso  y el problema persiste
>>>>> Mi pregunta apunta mas a ver si hay alguien que lo haya podido hacer
>>>>> funcionar con Let´s encrypt, ya que si me funcionó con certificados
>>>>> autofirmados en ambos lados.
>>>>>
>>>>>
>>>>> El lun, 10 mar 2025 a las 15:00, Juan (<smalltalker.marcelo@gmail.com>)
>>>>> escribió:
>>>>>
>>>>>> existe un comando update-ca-certificates cambia en cada distro....
>>>>>> salu2
>>>>>>
>>>>>> On Mon, Mar 10, 2025 at 2:00 PM Guillermo E. Villanueva <
>>>>>> guillermovil@gmail.com> wrote:
>>>>>>
>>>>>>> Enrique, gracias por tu respuesta
>>>>>>> en las pruebas que realicé,  en el server a la ca la agrego en
>>>>>>> postgresl.conf con el parámetro  ssl_ca_file = '/..../ca.crt' eso
>>>>>>> no es suficiente? acaso mi comando para generarla:
>>>>>>> openssl req -new -x509 -days 365 -nodes -out ca.crt -keyout ca.key
>>>>>>> -subj "/CN=root-ca"
>>>>>>> no la agrega automáticamente en las ca conocidas?
>>>>>>> Te referis del lado del cliente?
>>>>>>>
>>>>>>> El lun, 10 mar 2025 a las 13:44, Enrique Herrera Noya (<
>>>>>>> enrique.herreranoya@gmail.com>) escribió:
>>>>>>>
>>>>>>>> lo dice el log:
>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>
>>>>>>>> debes agregar el CA como CA conocido
>>>>>>>>
>>>>>>>> saludos
>>>>>>>>
>>>>>>>>
>>>>>>>> El 10-03-25 a las 13:36, Guillermo E. Villanueva escribió:
>>>>>>>>
>>>>>>>> Buenas tardes! En los últimos días estuve trabajando en el proyecto
>>>>>>>> de hacer funcionar postgres 13, con autenticación por certificados ssl,
>>>>>>>> usando openssl y certificados firmados por una propia CA funcionó
>>>>>>>> correctamente, pero cuando intento hacerlo con certificados Let's Encrypt
>>>>>>>> para el servidor, no funciona.
>>>>>>>>
>>>>>>>> Desde el cliente con credenciales de lets encrypt
>>>>>>>> psql "host=host.dominio.com dbname=postgres user=postgres
>>>>>>>> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
>>>>>>>> sslrootcert=./chain.pem"
>>>>>>>> Error:
>>>>>>>> psql: error: connection to server at " host.dominio.com" (ip),
>>>>>>>> port 5432 failed: SSL error: certificate verify failed
>>>>>>>>
>>>>>>>> Y en el log de postgres:
>>>>>>>> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>  connection received: host=ip_del_cliente port=55848
>>>>>>>> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:
>>>>>>>>  could not accept SSL connection: tlsv1 alert unknown ca
>>>>>>>>
>>>>>>>> Tambien lo probé con certificados autofirmados para el cliente
>>>>>>>> adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
>>>>>>>> funcionar.
>>>>>>>>
>>>>>>>> Alguno de por acá pudo hacer funcionar autenticación con Let's
>>>>>>>> Encrypt?
>>>>>>>>
>>>>>>>> Desde ya muchas gracias por leer y por los comentarios que tengan.
>>>>>>>>
>>>>>>>> Saludos
>>>>>>>>
>>>>>>>>
>>>>>>>> Enrique Herrera Noya
>>>>>>>> --
>>>>>>>> +56 992303151
>>>>>>>> Red Hat Certified Engineer RHCE Nº100223072 (RH6.0)
>>>>>>>> Red Hat Certified System Administrato RHCSA Nº100223072 (RH6.0)
>>>>>>>> Red Hat Certified Technician (RHCT) Nº605010753835478 (RH5.0)
>>>>>>>> Novell Certified Linux Professional CLP 10
>>>>>>>> Red Hat Delivery Specialist -Container Platform Application Deployment I
>>>>>>>> Red Hat Delivery Specialist - Container Platform Administration I
>>>>>>>> RED HAT SPECIALIST
>>>>>>>> How to Sell Red Hat OpenShift for Infrastructure
>>>>>>>> How to Sell Red Hat OpenShift for Developers
>>>>>>>> Red Hat Sales Engineer Specialist - Container Platform
>>>>>>>> Red Hat Sales Engineer Specialist – Automation
>>>>>>>>
>>>>>>>>

Attachments:

image.png (image/png, 130.7K) download view image
image.png (image/png, 61.6K) download view image
^ permalink raw reply [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-10 19:37 ` Horacio Miranda <hmiranda@gmail.com>
  2025-03-11 08:03   ` Re: Autenticación TSL Gabriel Guillem Barceló Soteras <gbarcelo@parlamentib.es>
  2025-03-11 12:19   ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  1 sibling, 2 replies; 21+ messages in thread

From: Horacio Miranda @ 2025-03-10 19:37 UTC (permalink / raw)
  To: Guillermo E. Villanueva <guillermovil@gmail.com>; +Cc: pgsql-es-ayuda


--Apple-Mail-6DBA1C6D-E567-4820-BD01-C52BEE728517
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto">Dice que no conoce el CA.<div>Agrega el CA d=
e let=E2=80=99s encrypt a tu Linux o en un archivo donde conoce el CA de let=
s encrypt.</div><div>Ahora est=C3=A1s usando TLS o quieres usar mTLS ?&nbsp;=
</div><div><br id=3D"lineBreakAtBeginningOfSignature"><div dir=3D"ltr">Regar=
ds,<br><div>Horacio Miranda</div><div><br></div></div><div dir=3D"ltr"><br><=
blockquote type=3D"cite">On 11 Mar 2025, at 5:37=E2=80=AFAM, Guillermo E. Vi=
llanueva &lt;guillermovil@gmail.com&gt; wrote:<br><br></blockquote></div><bl=
ockquote type=3D"cite"><div dir=3D"ltr">=EF=BB=BF<div dir=3D"ltr">Buenas tar=
des! En los =C3=BAltimos d=C3=ADas estuve trabajando en el proyecto de hacer=
 funcionar postgres 13, con autenticaci=C3=B3n por certificados ssl, usando o=
penssl y certificados firmados por una propia CA funcion=C3=B3 correctamente=
, pero cuando intento hacerlo con certificados Let's Encrypt para el servido=
r, no funciona.&nbsp;<div><div><br></div><div>Desde el cliente con credencia=
les de lets encrypt<br><font face=3D"monospace">psql "host=3D<a href=3D"http=
://host.dominio.com">host.dominio.com</a> dbname=3Dpostgres user=3Dpostgres s=
slmode=3Dverify-ca sslcert=3D./fullchain.pem sslkey=3D./privkey.pem sslrootc=
ert=3D./chain.pem"<br></font>Error:<br><font face=3D"monospace">psql: error:=
 connection to server at "</font>

<span style=3D"font-family:monospace"><a href=3D"http://host.dominio.com">ho=
st.dominio.com</a></span><font face=3D"monospace">" (ip), port 5432 failed: S=
SL error: certificate verify failed<br></font></div><div></div><div><br></di=
v><div>Y en el log de postgres:<br><font face=3D"monospace">2025-03-10 15:29=
:18.080 CET [893999] [unknown]@[unknown] LOG: &nbsp;connection received: hos=
t=3Dip_del_cliente port=3D55848<br>2025-03-10 15:29:18.093 CET [893999] [unk=
nown]@[unknown] LOG: &nbsp;could not accept SSL connection: tlsv1 alert unkn=
own ca<br></font><br>Tambien lo prob=C3=A9 con certificados autofirmados par=
a el cliente adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no l=
ogro hacerlo funcionar.&nbsp;</div><div><br>Alguno de por ac=C3=A1 pudo hace=
r funcionar autenticaci=C3=B3n con Let's Encrypt?</div></div><div><br></div>=
<div>Desde ya muchas gracias por leer y por los comentarios que tengan.</div=
><div><br></div><div>Saludos</div></div>
</div></blockquote></div></body></html>=

--Apple-Mail-6DBA1C6D-E567-4820-BD01-C52BEE728517--





^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 19:37 ` Re: Autenticación TSL Horacio Miranda <hmiranda@gmail.com>
@ 2025-03-11 08:03   ` Gabriel Guillem Barceló Soteras <gbarcelo@parlamentib.es>
  2025-03-11 12:17     ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  1 sibling, 1 reply; 21+ messages in thread

From: Gabriel Guillem Barceló Soteras @ 2025-03-11 08:03 UTC (permalink / raw)
  To: Horacio Miranda <hmiranda@gmail.com>; Guillermo E. Villanueva <guillermovil@gmail.com>; +Cc: pgsql-es-ayuda

Buenas, nosotros solo utilizamos certificado en el servidor, y los clientes son los que confian en dicho certificado (bien configurados). Me parece que también utilizas certificado en els servidor, como bien apuntas, la confianza de certificados es en dos sentidos. Yo intentaría:

  1.  Configurar cada host a nivel de SO para confiar en las AC(s) raíz de PKI privadas. Cada organización suele mantenir sus plantillas con dicha congifuración, via Ansible o similar. Debian y Fedora tienen el mismo procedimiento pero cambian las rutas y el nombre de un comando:

# Set variables based on the distribution
if [ -f /etc/redhat-release ]; then
PKG_MANAGER="yum install -y";
CA_PATH="/etc/pki/ca-trust/source/anchors";
UPDATE_CA="update-ca-trust";
elif [ -f /etc/debian_version ]; then
PKG_MANAGER="apt-get update && apt-get install -y";
CA_PATH="/usr/local/share/ca-certificates";
UPDATE_CA="update-ca-certificates";
elif [ -f /etc/alpine-release ]; then
PKG_MANAGER="apk add --no-cache";
CA_PATH="/usr/local/share/ca-certificates";
UPDATE_CA="update-ca-certificates";
else \
echo "Unsupported base image";
exit 1;
fi
# Install necessary packages
${PKG_MANAGER} openssl curl ca-certificates
# Add CA certificates
curl -s http://authority_information_access.fqdn/root_ca.crt | openssl x509 | tee ${CA_PATH}/tu_root_ca.pem | openssl x509 -noout -subject -issuer
# repite para otras AC(s)
# Update CA certificates
${UPDATE_CA}


  1.  Para el cliente: como ahora mantienes la confianza del host base, puedes utilitzar los .PEM generados por el sistema. Son ficheros que reúnen todas las AC(s), en Fedora/EL sslrootcert=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem. En PG 16+ existe sslrootcert=system<https://www.postgresql.org/docs/16/libpq-connect.html#LIBPQ-CONNECT-SSLROOTCERT;. Más información: https://www.postgresql.org/docs/13/libpq-ssl.html
https://www.postgresql.org/docs/13/runtime-config-connection.html
  2.  Para el servidor: Similar, pero no tienes que utilitzar el fichero de AC(s) del sistema. A mi parecer, solo tendrías que poner la AC privada en formato PEM con la que emites los certificados del cliente. Puedes utilitzar la ruta tipo /etc/pki/ca-trust/source/anchors/<tu_root_ca_id_clientes.pem> como el paso 1.
https://www.postgresql.org/docs/13/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL

Aún así, recomiendo utilitzar otros esquemas de autenticación como Kerberos (GSSAPI) para mantener las identidades centralizadas más facilmente.

From: Horacio Miranda <hmiranda@gmail.com>
Date: Monday, 10 March 2025 at 20:38
To: Guillermo E. Villanueva <guillermovil@gmail.com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda@postgresql.org>
Subject: Re: Autenticación TSL
Dice que no conoce el CA.
Agrega el CA de let’s encrypt a tu Linux o en un archivo donde conoce el CA de lets encrypt.
Ahora estás usando TLS o quieres usar mTLS ?

Regards,
Horacio Miranda



On 11 Mar 2025, at 5:37 AM, Guillermo E. Villanueva <guillermovil@gmail.com> wrote:

Buenas tardes! En los últimos días estuve trabajando en el proyecto de hacer funcionar postgres 13, con autenticación por certificados ssl, usando openssl y certificados firmados por una propia CA funcionó correctamente, pero cuando intento hacerlo con certificados Let's Encrypt para el servidor, no funciona.

Desde el cliente con credenciales de lets encrypt
psql "host=host.dominio.com<http://host.dominio.com; dbname=postgres user=postgres sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem sslrootcert=./chain.pem"
Error:
psql: error: connection to server at " host.dominio.com<http://host.dominio.com>"; (ip), port 5432 failed: SSL error: certificate verify failed

Y en el log de postgres:
2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:  connection received: host=ip_del_cliente port=55848
2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not accept SSL connection: tlsv1 alert unknown ca

Tambien lo probé con certificados autofirmados para el cliente adaptando postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo funcionar.

Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?

Desde ya muchas gracias por leer y por los comentarios que tengan.

Saludos


^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 19:37 ` Re: Autenticación TSL Horacio Miranda <hmiranda@gmail.com>
  2025-03-11 08:03   ` Re: Autenticación TSL Gabriel Guillem Barceló Soteras <gbarcelo@parlamentib.es>
@ 2025-03-11 12:17     ` Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-11 16:37       ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  0 siblings, 1 reply; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-11 12:17 UTC (permalink / raw)
  To: Gabriel Guillem Barceló Soteras <gbarcelo@parlamentib.es>; +Cc: Horacio Miranda <hmiranda@gmail.com>; pgsql-es-ayuda

Hola Gabriel, gracias por tu respuesta, el postgres está en un ununtu,
segui los pasos y al intentar:
curl -s http://authority_information_access.fqdn/root_ca.crt | openssl x509
| tee ${CA_PATH}/chain.pem | openssl x509 -noout -subject -issuer

Me da
Could not read certificate from <stdin>
Unable to load certificate
Could not read certificate from <stdin>
Unable to load certificate

Mi problema principal es que no se nada de SSL, y encamino mi
configuración  basado en que con CA generada con openssl (autofirmados) si
anduvo bien. Pienso que es un problema propio de Lets Encrypt

El mar, 11 mar 2025 a las 5:03, Gabriel Guillem Barceló Soteras (<
gbarcelo@parlamentib.es>) escribió:

> Buenas, nosotros solo utilizamos certificado en el servidor, y los
> clientes son los que confian en dicho certificado (bien configurados). Me
> parece que también utilizas certificado en els servidor, como bien apuntas,
> la confianza de certificados es en dos sentidos. Yo intentaría:
>
>    1. Configurar cada host a nivel de SO para confiar en las AC(s) raíz
>    de PKI privadas. Cada organización suele mantenir sus plantillas con dicha
>    congifuración, via Ansible o similar. Debian y Fedora tienen el mismo
>    procedimiento pero cambian las rutas y el nombre de un comando:
>
>
>
> # Set variables based on the distribution
>
> if [ -f /etc/redhat-release ]; then
>
> PKG_MANAGER="yum install -y";
>
> CA_PATH="/etc/pki/ca-trust/source/anchors";
>
> UPDATE_CA="update-ca-trust";
>
> elif [ -f /etc/debian_version ]; then
>
> PKG_MANAGER="apt-get update && apt-get install -y";
>
> CA_PATH="/usr/local/share/ca-certificates";
>
> UPDATE_CA="update-ca-certificates";
>
> elif [ -f /etc/alpine-release ]; then
>
> PKG_MANAGER="apk add --no-cache";
>
> CA_PATH="/usr/local/share/ca-certificates";
>
> UPDATE_CA="update-ca-certificates";
>
> else \
>
> echo "Unsupported base image";
>
> exit 1;
>
> fi
>
> # Install necessary packages
>
> ${PKG_MANAGER} openssl curl ca-certificates
>
> # Add CA certificates
>
> curl -s http://authority_information_access.fqdn/root_ca.crt | openssl
> x509 | tee ${CA_PATH}/tu_root_ca.pem | openssl x509 -noout -subject
> -issuer
>
> # repite para otras AC(s)
>
> # Update CA certificates
>
> ${UPDATE_CA}
>
>
>
>    2. *Para el cliente*: como ahora mantienes la confianza del host base,
>    puedes utilitzar los .PEM generados por el sistema. Son ficheros que reúnen
>    todas las AC(s), en Fedora/EL
>    sslrootcert=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem. En PG
>    16+ existe sslrootcert=system
>    <https://www.postgresql.org/docs/16/libpq-connect.html#LIBPQ-CONNECT-SSLROOTCERT;.
>    Más información: https://www.postgresql.org/docs/13/libpq-ssl.html
>    https://www.postgresql.org/docs/13/runtime-config-connection.html
>    3. *Para el servidor*: Similar, pero no tienes que utilitzar el
>    fichero de AC(s) del sistema. A mi parecer, solo tendrías que poner la AC
>    privada en formato PEM con la que emites los certificados *del cliente*.
>    Puedes utilitzar la ruta tipo /etc/pki/ca-trust/source/anchors/<tu_root_ca_id_clientes.pem>
>    como el paso 1.
>
>    https://www.postgresql.org/docs/13/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL
>
>
>
> Aún así, recomiendo utilitzar otros esquemas de autenticación como
> Kerberos (GSSAPI) para mantener las identidades centralizadas más
> facilmente.
>
>
>
> *From: *Horacio Miranda <hmiranda@gmail.com>
> *Date: *Monday, 10 March 2025 at 20:38
> *To: *Guillermo E. Villanueva <guillermovil@gmail.com>
> *Cc: *pgsql-es-ayuda <pgsql-es-ayuda@postgresql.org>
> *Subject: *Re: Autenticación TSL
>
> Dice que no conoce el CA.
>
> Agrega el CA de let’s encrypt a tu Linux o en un archivo donde conoce el
> CA de lets encrypt.
>
> Ahora estás usando TLS o quieres usar mTLS ?
>
>
>
> Regards,
>
> Horacio Miranda
>
>
>
>
>
> On 11 Mar 2025, at 5:37 AM, Guillermo E. Villanueva <
> guillermovil@gmail.com> wrote:
>
> 
>
> Buenas tardes! En los últimos días estuve trabajando en el proyecto de
> hacer funcionar postgres 13, con autenticación por certificados ssl, usando
> openssl y certificados firmados por una propia CA funcionó correctamente,
> pero cuando intento hacerlo con certificados Let's Encrypt para el
> servidor, no funciona.
>
>
>
> Desde el cliente con credenciales de lets encrypt
> psql "host=host.dominio.com dbname=postgres user=postgres
> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
> sslrootcert=./chain.pem"
> Error:
> psql: error: connection to server at " host.dominio.com" (ip), port 5432
> failed: SSL error: certificate verify failed
>
>
>
> Y en el log de postgres:
> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:  connection
> received: host=ip_del_cliente port=55848
> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
> accept SSL connection: tlsv1 alert unknown ca
>
> Tambien lo probé con certificados autofirmados para el cliente adaptando
> postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
> funcionar.
>
>
> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>
>
>
> Desde ya muchas gracias por leer y por los comentarios que tengan.
>
>
>
> Saludos
>
>

^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 19:37 ` Re: Autenticación TSL Horacio Miranda <hmiranda@gmail.com>
  2025-03-11 08:03   ` Re: Autenticación TSL Gabriel Guillem Barceló Soteras <gbarcelo@parlamentib.es>
  2025-03-11 12:17     ` Re: Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
@ 2025-03-11 16:37       ` Guillermo E. Villanueva <guillermovil@gmail.com>
  0 siblings, 0 replies; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-11 16:37 UTC (permalink / raw)
  To: Gabriel Guillem Barceló Soteras <gbarcelo@parlamentib.es>; pgsql-es-ayuda

Muchas gracias por la ayuda!

El mar, 11 mar 2025 a las 13:13, Gabriel Guillem Barceló Soteras (<
gbarcelo@parlamentib.es>) escribió:

> El enlace del comando de curl es el certificado AC sinlo tienes disponible
> para su descarga en un servidor web (concepto PKI AIA). En las extensiones
> del certificado de servidor/cliente suele existir una URL de localización
> (descarga) de la CA que expidió dicho cert. Alternativamente puedes copiar
> manualmente el certificado PEM (base64) de AC raíz al directorio
> correspondiente. Sigue la guía del fabricante del SO.
>
> Si no controlas mucho el tema de PKI o TLS te recomiendo que hagas una
> revisión por pares de lo que haces con algun compañero de sistemas o
> cliente. Mantener una PKI local con openssl no es trivial.
> ------------------------------
> *From:* Guillermo E. Villanueva <guillermovil@gmail.com>
> *Sent:* Tuesday, March 11, 2025 1:17:54 PM
> *To:* Gabriel Guillem Barceló Soteras <gbarcelo@parlamentib.es>
> *Cc:* Horacio Miranda <hmiranda@gmail.com>; pgsql-es-ayuda <
> pgsql-es-ayuda@postgresql.org>
> *Subject:* Re: Autenticación TSL
>
> Hola Gabriel, gracias por tu respuesta, el postgres está en un ununtu,
> segui los pasos y al intentar:
> curl -s http://authority_information_access.fqdn/root_ca.crt | openssl
> x509 | tee ${CA_PATH}/chain.pem | openssl x509 -noout -subject -issuer
>
> Me da
> Could not read certificate from <stdin>
> Unable to load certificate
> Could not read certificate from <stdin>
> Unable to load certificate
>
> Mi problema principal es que no se nada de SSL, y encamino mi
> configuración  basado en que con CA generada con openssl (autofirmados) si
> anduvo bien. Pienso que es un problema propio de Lets Encrypt
>
> El mar, 11 mar 2025 a las 5:03, Gabriel Guillem Barceló Soteras (<
> gbarcelo@parlamentib.es>) escribió:
>
> Buenas, nosotros solo utilizamos certificado en el servidor, y los
> clientes son los que confian en dicho certificado (bien configurados). Me
> parece que también utilizas certificado en els servidor, como bien apuntas,
> la confianza de certificados es en dos sentidos. Yo intentaría:
>
>    1. Configurar cada host a nivel de SO para confiar en las AC(s) raíz
>    de PKI privadas. Cada organización suele mantenir sus plantillas con dicha
>    congifuración, via Ansible o similar. Debian y Fedora tienen el mismo
>    procedimiento pero cambian las rutas y el nombre de un comando:
>
>
>
> # Set variables based on the distribution
>
> if [ -f /etc/redhat-release ]; then
>
> PKG_MANAGER="yum install -y";
>
> CA_PATH="/etc/pki/ca-trust/source/anchors";
>
> UPDATE_CA="update-ca-trust";
>
> elif [ -f /etc/debian_version ]; then
>
> PKG_MANAGER="apt-get update && apt-get install -y";
>
> CA_PATH="/usr/local/share/ca-certificates";
>
> UPDATE_CA="update-ca-certificates";
>
> elif [ -f /etc/alpine-release ]; then
>
> PKG_MANAGER="apk add --no-cache";
>
> CA_PATH="/usr/local/share/ca-certificates";
>
> UPDATE_CA="update-ca-certificates";
>
> else \
>
> echo "Unsupported base image";
>
> exit 1;
>
> fi
>
> # Install necessary packages
>
> ${PKG_MANAGER} openssl curl ca-certificates
>
> # Add CA certificates
>
> curl -s http://authority_information_access.fqdn/root_ca.crt | openssl
> x509 | tee ${CA_PATH}/tu_root_ca.pem | openssl x509 -noout -subject
> -issuer
>
> # repite para otras AC(s)
>
> # Update CA certificates
>
> ${UPDATE_CA}
>
>
>
>    2. *Para el cliente*: como ahora mantienes la confianza del host base,
>    puedes utilitzar los .PEM generados por el sistema. Son ficheros que reúnen
>    todas las AC(s), en Fedora/EL
>    sslrootcert=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem. En PG
>    16+ existe sslrootcert=system
>    <https://www.postgresql.org/docs/16/libpq-connect.html#LIBPQ-CONNECT-SSLROOTCERT;.
>    Más información: https://www.postgresql.org/docs/13/libpq-ssl.html
>    https://www.postgresql.org/docs/13/runtime-config-connection.html
>    3. *Para el servidor*: Similar, pero no tienes que utilitzar el
>    fichero de AC(s) del sistema. A mi parecer, solo tendrías que poner la AC
>    privada en formato PEM con la que emites los certificados *del cliente*.
>    Puedes utilitzar la ruta tipo /etc/pki/ca-trust/source/anchors/<tu_root_ca_id_clientes.pem>
>    como el paso 1.
>
>    https://www.postgresql.org/docs/13/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL
>
>
>
> Aún así, recomiendo utilitzar otros esquemas de autenticación como
> Kerberos (GSSAPI) para mantener las identidades centralizadas más
> facilmente.
>
>
>
> *From: *Horacio Miranda <hmiranda@gmail.com>
> *Date: *Monday, 10 March 2025 at 20:38
> *To: *Guillermo E. Villanueva <guillermovil@gmail.com>
> *Cc: *pgsql-es-ayuda <pgsql-es-ayuda@postgresql.org>
> *Subject: *Re: Autenticación TSL
>
> Dice que no conoce el CA.
>
> Agrega el CA de let’s encrypt a tu Linux o en un archivo donde conoce el
> CA de lets encrypt.
>
> Ahora estás usando TLS o quieres usar mTLS ?
>
>
>
> Regards,
>
> Horacio Miranda
>
>
>
>
>
> On 11 Mar 2025, at 5:37 AM, Guillermo E. Villanueva <
> guillermovil@gmail.com> wrote:
>
> 
>
> Buenas tardes! En los últimos días estuve trabajando en el proyecto de
> hacer funcionar postgres 13, con autenticación por certificados ssl, usando
> openssl y certificados firmados por una propia CA funcionó correctamente,
> pero cuando intento hacerlo con certificados Let's Encrypt para el
> servidor, no funciona.
>
>
>
> Desde el cliente con credenciales de lets encrypt
> psql "host=host.dominio.com dbname=postgres user=postgres
> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
> sslrootcert=./chain.pem"
> Error:
> psql: error: connection to server at " host.dominio.com" (ip), port 5432
> failed: SSL error: certificate verify failed
>
>
>
> Y en el log de postgres:
> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:  connection
> received: host=ip_del_cliente port=55848
> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
> accept SSL connection: tlsv1 alert unknown ca
>
> Tambien lo probé con certificados autofirmados para el cliente adaptando
> postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
> funcionar.
>
>
> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>
>
>
> Desde ya muchas gracias por leer y por los comentarios que tengan.
>
>
>
> Saludos
>
>

^ permalink  raw  reply  [nested|flat] 21+ messages in thread

* Re: Autenticación TSL
  2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
  2025-03-10 19:37 ` Re: Autenticación TSL Horacio Miranda <hmiranda@gmail.com>
@ 2025-03-11 12:19   ` Guillermo E. Villanueva <guillermovil@gmail.com>
  1 sibling, 0 replies; 21+ messages in thread

From: Guillermo E. Villanueva @ 2025-03-11 12:19 UTC (permalink / raw)
  To: Horacio Miranda <hmiranda@gmail.com>; +Cc: pgsql-es-ayuda

Gracias Horacio, van mis respuestas.

El lun, 10 mar 2025 a las 16:37, Horacio Miranda (<hmiranda@gmail.com>)
escribió:

> Dice que no conoce el CA.
> Agrega el CA de let’s encrypt a tu Linux o en un archivo donde conoce el
> CA de lets encrypt.
>
En el cliente o en el server?


> Ahora estás usando TLS o quieres usar mTLS ?
>
Ups, como verifico eso? supongo que TLS


>
> Regards,
> Horacio Miranda
>
>
> On 11 Mar 2025, at 5:37 AM, Guillermo E. Villanueva <
> guillermovil@gmail.com> wrote:
>
> 
> Buenas tardes! En los últimos días estuve trabajando en el proyecto de
> hacer funcionar postgres 13, con autenticación por certificados ssl, usando
> openssl y certificados firmados por una propia CA funcionó correctamente,
> pero cuando intento hacerlo con certificados Let's Encrypt para el
> servidor, no funciona.
>
> Desde el cliente con credenciales de lets encrypt
> psql "host=host.dominio.com dbname=postgres user=postgres
> sslmode=verify-ca sslcert=./fullchain.pem sslkey=./privkey.pem
> sslrootcert=./chain.pem"
> Error:
> psql: error: connection to server at " host.dominio.com" (ip), port 5432
> failed: SSL error: certificate verify failed
>
> Y en el log de postgres:
> 2025-03-10 15:29:18.080 CET [893999] [unknown]@[unknown] LOG:  connection
> received: host=ip_del_cliente port=55848
> 2025-03-10 15:29:18.093 CET [893999] [unknown]@[unknown] LOG:  could not
> accept SSL connection: tlsv1 alert unknown ca
>
> Tambien lo probé con certificados autofirmados para el cliente adaptando
> postgresql.conf y pg_hba.conf, pero no hay caso, no logro hacerlo
> funcionar.
>
> Alguno de por acá pudo hacer funcionar autenticación con Let's Encrypt?
>
> Desde ya muchas gracias por leer y por los comentarios que tengan.
>
> Saludos
>
>

^ permalink  raw  reply  [nested|flat] 21+ messages in thread


end of thread, other threads:[~2025-03-12 15:29 UTC | newest]

Thread overview: 21+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2025-03-10 16:36 Autenticación TSL Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-10 16:27 ` Enrique Herrera Noya <enrique.herreranoya@gmail.com>
2025-03-10 17:00   ` Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-10 17:59     ` Juan <smalltalker.marcelo@gmail.com>
2025-03-10 18:19       ` Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-10 18:23         ` Juan <smalltalker.marcelo@gmail.com>
2025-03-10 18:37         ` Jairo Graterón <jgrateron@gmail.com>
2025-03-11 13:44           ` Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-11 17:31             ` Jairo Graterón <jgrateron@gmail.com>
2025-03-11 18:07               ` Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-11 18:24                 ` Jairo Graterón <jgrateron@gmail.com>
2025-03-11 18:32                   ` Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-11 18:33                     ` Jairo Graterón <jgrateron@gmail.com>
2025-03-11 18:36                       ` Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-12 15:27               ` Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-12 15:29                 ` Jairo Graterón <jgrateron@gmail.com>
2025-03-10 19:37 ` Horacio Miranda <hmiranda@gmail.com>
2025-03-11 08:03   ` Gabriel Guillem Barceló Soteras <gbarcelo@parlamentib.es>
2025-03-11 12:17     ` Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-11 16:37       ` Guillermo E. Villanueva <guillermovil@gmail.com>
2025-03-11 12:19   ` Guillermo E. Villanueva <guillermovil@gmail.com>

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox