Searching for .fullchain.pem first before .crt would be a great help, it
best matches the naming conventions used in the
/etc/example/acme-client.conf

-- 
jrmu
IRCNow (https://ircnow.org)

On Sun, Aug 11, 2024 at 12:44:40PM +0200, Peter Philipp wrote:
> On Sun, Aug 11, 2024 at 11:10:17AM +0200, Kirill A. Korinsky wrote:
> > On Sun, 11 Aug 2024 09:57:31 +0200,
> > Peter Philipp <i...@callpeter.tel> wrote:
> > > 
> > > openssl s_client returns this:
> > > ----
> > >     Verify return code: 20 (unable to get local issuer certificate)
> > > ----
> > > 
> > > based on these two command which the first one fails hard:
> > > 
> > > 34      ftp 
> > > https://download.delphinusdns.org/pub/delphinusdnsd/snapshot/INSTALL/goldflipper11.png
> > > 35      openssl s_client -connect download.delphinusdns.org:443
> > > 
> > > how do I debug this?  If anyone can hold my hand a little bit here, I 
> > > would
> > > appreciate it.  I have added TLSA DNS entries for all the port 443's on my
> > > DNS!
> > > 
> > 
> > I see that you're using a ceritficate which was issued by Let's Encryption,
> > and I asee that certificate which is sent from your server hasn't got full
> > chain:
> > 
> >   Certificate chain
> >    0 s:/CN=download.delphinusdns.org
> >      i:/C=US/O=Let's Encrypt/CN=R10
> > 
> > I think that distributing the whole chain should fix that issue.
> > 
> > -- 
> > wbr, Kirill
> 
> Would this patch then, make any sense?
> 
> -pjp
> 
> 
> Index: parse.y
> ===================================================================
> RCS file: /cvs/src/usr.sbin/relayd/parse.y,v
> retrieving revision 1.257
> diff -u -p -u -r1.257 parse.y
> --- parse.y   10 Aug 2024 05:47:29 -0000      1.257
> +++ parse.y   11 Aug 2024 10:43:15 -0000
> @@ -1372,6 +1372,8 @@ flag            : STRING                        {
>                               $$ = TLSFLAG_CIPHER_SERVER_PREF;
>                       else if (strcmp("client-renegotiation", $1) == 0)
>                               $$ = TLSFLAG_CLIENT_RENEG;
> +                     else if (strcmp("fullchain", $1) == 0)
> +                             $$ = TLSFLAG_KEYPAIR_FULLCHAIN;
>                       else {
>                               yyerror("invalid TLS flag: %s", $1);
>                               free($1);
> Index: relayd.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/relayd/relayd.c,v
> retrieving revision 1.191
> diff -u -p -u -r1.191 relayd.c
> --- relayd.c  25 Jun 2023 08:07:38 -0000      1.191
> +++ relayd.c  11 Aug 2024 10:43:15 -0000
> @@ -1367,11 +1367,14 @@ relay_load_certfiles(struct relayd *env,
>               goto fail;
>  
>       if (snprintf(certfile, sizeof(certfile),
> -         "/etc/ssl/%s:%u.crt", hbuf, useport) == -1)
> +         "/etc/ssl/%s:%u.%s", hbuf, useport, ((proto->tlsflags & \
> +             TLSFLAG_KEYPAIR_FULLCHAIN) ? "fullchain.pem" : "crt")) == -1)
>               goto fail;
>       if ((cert_fd = open(certfile, O_RDONLY)) == -1) {
>               if (snprintf(certfile, sizeof(certfile),
> -                 "/etc/ssl/%s.crt", hbuf) == -1)
> +                     "/etc/ssl/%s.%s", hbuf, ((proto->tlsflags & \
> +                     TLSFLAG_KEYPAIR_FULLCHAIN) ? "fullchain.pem" : "crt")
> +                     ) == -1)
>                       goto fail;
>               if ((cert_fd = open(certfile, O_RDONLY)) == -1)
>                       goto fail;
> Index: relayd.conf.5
> ===================================================================
> RCS file: /cvs/src/usr.sbin/relayd/relayd.conf.5,v
> retrieving revision 1.209
> diff -u -p -u -r1.209 relayd.conf.5
> --- relayd.conf.5     14 Jul 2024 03:58:49 -0000      1.209
> +++ relayd.conf.5     11 Aug 2024 10:43:15 -0000
> @@ -1040,6 +1040,9 @@ The default is
>  Is deprecated and does nothing.
>  .It Ic tlsv1.1
>  Is deprecated and does nothing.
> +.It Ic fullchain
> +prefers the fullchain PEM file instead of the CRT as given by 
> +.Xr acme-client 1 .
>  .El
>  .It Ic http Ar option
>  Set the HTTP options and session settings.
> Index: relayd.h
> ===================================================================
> RCS file: /cvs/src/usr.sbin/relayd/relayd.h,v
> retrieving revision 1.274
> diff -u -p -u -r1.274 relayd.h
> --- relayd.h  10 Aug 2024 05:47:29 -0000      1.274
> +++ relayd.h  11 Aug 2024 10:43:15 -0000
> @@ -701,12 +701,14 @@ TAILQ_HEAD(relay_rules, relay_rule);
>  #define TLSFLAG_VERSION                              0x1f
>  #define TLSFLAG_CIPHER_SERVER_PREF           0x20
>  #define TLSFLAG_CLIENT_RENEG                 0x40
> +#define      TLSFLAG_KEYPAIR_FULLCHAIN               0x80
>  #define TLSFLAG_DEFAULT                              \
>       (TLSFLAG_TLSV1_2|TLSFLAG_TLSV1_3|TLSFLAG_CIPHER_SERVER_PREF)
>  
>  #define TLSFLAG_BITS                                         \
>       "\06\01sslv3\02tlsv1.0\03tlsv1.1\04tlsv1.2\05tlsv1.3"   \
> -     "\06cipher-server-preference\07client-renegotiation"
> +     "\06cipher-server-preference\07client-renegotiation"    \
> +     "\08fullchain"
>  
>  #define TLSCIPHERS_DEFAULT   "HIGH:!aNULL"
>  #define TLSECDHECURVES_DEFAULT       "default"
> 
> -- 
> ** out of spiffy .signature messages
> 

Reply via email to