Le 21/11/2017 à 13:46, Alexander Lebedev a écrit :
Hi!

In 1.7.9 with crt-base and ca-base in global haproxy try to search crt for server in ca-base. In bind all work as expected. If I specify the full path for crt in server - it's ok.


Hi,

You're right. There is a bug. The attached patch fixes it for the upstream. It must be slightly adapted to be applied on 1.7, 1.6 and 1.5 (there is no global_ssl structure for older releases. global must be used instead).

--
Christopher Faulet
>From e813590d22179da472d44131dd776fe76d60ff16 Mon Sep 17 00:00:00 2001
From: Christopher Faulet <[email protected]>
Date: Thu, 23 Nov 2017 09:13:32 +0100
Subject: [PATCH] BUG/MINOR: Use crt_base instead of ca_base when crt is parsed
 on a server line

In srv_parse_crt, crt_base was checked but ca_base was used to build the
certifacte path.

This patch must be backported in 1.7, 1.6 and 1.5.
---
 src/ssl_sock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index 24bb36877..0fca243d2 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -7714,7 +7714,7 @@ static int srv_parse_crt(char **args, int *cur_arg, struct proxy *px, struct ser
 	}
 
 	if ((*args[*cur_arg + 1] != '/') && global_ssl.crt_base)
-		memprintf(&newsrv->ssl_ctx.client_crt, "%s/%s", global_ssl.ca_base, args[*cur_arg + 1]);
+		memprintf(&newsrv->ssl_ctx.client_crt, "%s/%s", global_ssl.crt_base, args[*cur_arg + 1]);
 	else
 		memprintf(&newsrv->ssl_ctx.client_crt, "%s", args[*cur_arg + 1]);
 
-- 
2.13.6

Reply via email to