On Fri, 2 Jun 2023, Omar Polo wrote:

> Hello,
>
> Thanks for testing!

  Thanks for all the work of upgrading OpenSMTPD compatible again!
>
> On 2023/06/01 10:35:39 -0700, Richard Narron <rich...@aaazen.com> wrote:
> > On Thu, 1 Jun 2023, Richard Narron wrote:
> >
> > > I will modify the build to remove the --with-path-CAfile
> > > configure option and add a symbolic link for /etc/ssl/cert.pem
> >
> > The symbolic link in my build is not good idea because
> > it erases the cert.pem file which may be in use by other applications.
> >
> > I am better off patching the OpenSMTPD source code instead.
> >
> > Why is the --with-path-CAfile option removed?
>
> since the last release OpenSMTPD switched to libtls and stopped to
> hardcode into itself the path to the ca file, so I removed the unused
> option.
>
> libtls (which is bundled in openbsd-compat/libtls/) uses[*] OpenSSL'
> X509_get_default_cert_file() to load the default ca file.  I've tested
> and on Slackware 15 it returns "/etc/ssl/cert.pem", which is strange.
> For comparison, on Centos 7 (I had to fix a build issue there...)
> which doesn't have /etc/ssl/cert.pem too it returns
> /etc/pki/tls/cert.pem.
>
> I'm not against re-adding --with-path-CAfile, but is it something
> that's needed often on Slackware?  I don't seem to find libretls
> ported, but if it'll ever be packaged it would need a similar
> treatment.
>
> [*] well, on OpenBSD it has /etc/ssl/cert.pem hardcoded.  To make in
>     portable I changed it to use what OpenSSL thinks it's the default,
>     which is the same thing done in libretls, a version of libtls
>     targetting OpenSSL instead of LibreSSL.

If more BSD/Linux/other systems need to hardcode the CAfile, then it might
be useful to have the --with-path-CAfile

But the patch for Slackware is trivial:

--- opensmtpd-7.3.0p0-rc1/openbsd-compat/libtls/tls_config.c.orig       
2023-05-25 04:32:34.000000000 -0700
+++ opensmtpd-7.3.0p0-rc1/openbsd-compat/libtls/tls_config.c    2023-06-02 
05:55:31.482390836 -0700
@@ -33,7 +33,7 @@
 const char *
 tls_default_ca_cert_file(void)
 {
-       return X509_get_default_cert_file();
+       return "/etc/ssl/certs/ca-certificates.crt";
 }

 int






Reply via email to