SSL is broken on FreeBSD

Scot Hetzel swhetzel at gmail.com
Wed Apr 6 15:08:14 UTC 2011


On Tue, Apr 5, 2011 at 5:30 PM, Frank J. Cameron <cameron at ctc.com> wrote:
>> So it looks like /etc/ssl/cert.pem link just isn't "magic enough" to
>> be used by the ''openssl s_client" command by default (without -CAfile
>> command line argument).
>
> http://curl.haxx.se/mail/archive-2003-07/0036.html
>        Unfortunately, the information about this is not in the current
>        OpenSSL documentation. You have to read the source code or
>        see discussion about it in the openssl-dev mailing list.
>        There is a reference to the X509_get_default_cert_file and
>        X509_get_default_cert_file_env in the obsolete ssleay.txt file
>        in
>        the OpenSSL document directory, but that is about it. The only
>        references that I know to the SSL_CERT_FILE and SSL_CERT_DIR
>        environment variables (other than in the source code itself)
>        are
>        in the old "SSLeay and SSLapps FAQ" which is not distributed
>        with
>        OpenSSL (available at http://www2.psy.uq.edu.au/~ftp/Crypto/").
>        See some correspondence about these defaults in the openssl-dev
>        mailing list in a thread started by me in December 2002
>        (with a fix for the code by Richard Levitte and Rich Salz):
>        "http://marc.theaimsgroup.com/?l=openssl-dev&m=103899056011520"
>
>        The default name for the ca cert bundle is defined in
>        crypto/cryptlib.h, as are the environment variables
>        SSL_CERT_FILE and SSL_CERT_DIR.
>
> http://svn.freebsd.org/viewvc/base/stable/8/crypto/openssl/crypto/cryptlib.h
>        #define X509_CERT_FILE          OPENSSLDIR "/cert.pem"
>
> http://svn.freebsd.org/viewvc/base/stable/8/crypto/openssl/Makefile
>        OPENSSLDIR=/usr/local/ssl
>
FreeBSD doesn't use the crypto/openssl/Makefile when building OpenSSL
as part of a buildworld, instead we use our own custom Makefiles in
secure/lib/libcrypto.  The only place where OPENSSLDIR is defined is
in secure/lib/libcrypto/opensslconf-${MACHINE_CPUARCH}.h

http://svn.freebsd.org/viewvc/base/head/secure/lib/libcrypto/opensslconf-amd64.h?revision=194207&view=markup

#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
#define ENGINESDIR "/usr/lib/engines"
#define OPENSSLDIR "/etc/ssl"
#endif
#endif

> So, should the port be linking?:
>        /usr/local/ssl/cert.pem -> /usr/local/share/certs/ca-root-nss.crt
>
The port is creating the correct link for the base install of openssl.

Scotr


More information about the freebsd-security mailing list