pg.ddx.io pgsql-es-ayuda@postgresql.org mailing list archive
help / color / mirror / Atom feedRe: 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 ? =
</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 <guillermovil@gmail.com> 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. <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: connection received: hos=
t=3Dip_del_cliente port=3D55848<br>2025-03-10 15:29:18.093 CET [893999] [unk=
nown]@[unknown] LOG: 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. </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