gnutls ca store for opensuse 12.1
Joerg Mayer
jmayer at loplof.de
Sun Apr 28 08:11:45 EDT 2013
Hello,
this is against git head from today.
During configure:
checking for GNUTLS... yes
checking for gnutls_dtls_set_data_mtu... no
checking for gnutls_certificate_set_x509_system_trust... no
checking For location of system CA trust file... NOT FOUND
configure: error: Unable to find a standard system CA certificate file.
Your GnuTLS requires a path to a CA certificate store. This is a file
which contains a list of the Certificate Authorities which are trusted.
Most distributions ship with this file in a standard location, but none
the known standard locations exist on your system. You should provide a
--with-system-cafile= argument to this configure script, giving the full
path to a default CA certificate file for GnuTLS to use. Also, please
send full details of your system, including 'uname -a' output and the
location of the system CA certificate store on your system, to the
openconnect-devel at lists.infradead.org mailing list.
jmayer at egg:~> uname -a
Linux egg 3.8.6-2-desktop #1 SMP PREEMPT Mon Apr 8 12:20:48 UTC 2013 (290a7e9) i686 i686 i386 GNU/Linux
jmayer at egg:~> lsb_release -a
LSB Version: n/a
Distributor ID: SUSE LINUX
Description: openSUSE 12.1 (i586)
Release: 12.1
Codename: Asparagus
jmayer at egg:~/work/vpn/openconnect/build(master)> ../configure --with-system-cafile=/etc/ssl/ca-bundle.pem
[configure success]
During make:
make[1]: Entering directory `/home/jmayer/work/vpn/openconnect/build'
New version: v4.08-146-gf232096
CC libopenconnect_la-gnutls.lo
../gnutls.c: In function 'verify_signed_data':
../gnutls.c:590:3: error: implicit declaration of function 'gnutls_pk_to_sign' [-Werror=implicit-function-declaration]
algo = gnutls_pk_to_sign(gnutls_privkey_get_pk_algorithm(privkey, NULL),
^
../gnutls.c:590:3: warning: nested extern declaration of 'gnutls_pk_to_sign' [-Wnested-externs]
cc1: some warnings being treated as errors
make[1]: *** [libopenconnect_la-gnutls.lo] Error 1
make[1]: Leaving directory `/home/jmayer/work/vpn/openconnect/build'
make: *** [all-recursive] Error 1
jmayer at egg:~/work/vpn/openconnect(master)> zypper se -s gnutls | grep ^i
i | gnutls | package | 3.0.3-5.11.1 | i586 | openSUSE-Update
i | libgnutls-devel | package | 3.0.3-5.11.1 | i586 | openSUSE-Update
i | libgnutls-extra-devel | package | 3.0.3-5.11.1 | i586 | openSUSE-Update
i | libgnutls-extra28 | package | 3.0.3-5.11.1 | i586 | openSUSE-Update
i | libgnutls28 | package | 3.0.3-5.11.1 | i586 | openSUSE-Update
jmayer at egg:~/work/vpn/openconnect(master)> zypper se -s openssl | grep ^i
i | libopenssl-devel | package | 1.0.0k-34.20.1 | i586 | openSUSE-Update
i | libopenssl1_0_0 | package | 1.0.0k-34.20.1 | i586 | openSUSE-Update
i | openssl | package | 1.0.0k-34.20.1 | i586 | openSUSE-Update
Creating and applying the following change got me further (full patch as attach)
diff --git a/configure.ac b/configure.ac
a/configure.ac
+ AC_CHECK_FUNC(gnutls_pk_to_sign,
+ [AC_DEFINE(HAVE_GNUTLS_PUBKEY_TO_SIGN, 1)], [])
AC_CHECK_FUNC(gnutls_pubkey_verify_data2,
[AC_DEFINE(HAVE_GNUTLS_PUBKEY_VERIFY_DATA2, 1)], [])
diff --git a/gnutls.c b/gnutls.c
--- a/gnutls.c
-#ifdef HAVE_GNUTLS_PUBKEY_VERIFY_DATA2
+#if defined(HAVE_GNUTLS_PUBKEY_VERIFY_DATA2) && defined(HAVE_GNUTLS_PUBKEY_TO_SIGN)
gnutls_sign_algorithm_t algo = GNUTLS_SIGN_RSA_SHA1; /* TPM keys */
Doing make now gets me a bit further:
CC openconnect-dtls.o
../dtls.c:129:2: error: #error This version of OpenSSL is known to be broken with Cisco DTLS.
#error This version of OpenSSL is known to be broken with Cisco DTLS.
^
make[1]: *** [openconnect-dtls.o] Error 1
IMO, this is plain wrong for several reasons:
- This belongs into the configure check, not into the source file. Even then, it
should probably be a prominent warning at the end of the process only, not an
error. configure can also check for the gnutls version and either propose to use
gnutls instead or even automagically fall back to using gnutls if present.
- As there will hopefully be an update one day to openssl that fixes the problem,
it should always compile (not just via a define in the build) and complain at
startup or (as currently also implemented ) during connection setup. As openssl
bugfix releases do not require applications to be recompiled, openconnect should
not require this either.
- The server I want to connect to will accept TLS connections as well, but without
fiddling with the source I won't be able to connect at all (because of no binary),
this looks again looks wrong for me.
jmayer at egg:~/work/vpn/openconnect/build(master)> CFLAGS=-DNO_BROKEN_DTLS_CHECK ../configure --with-system-cafile=/etc/ssl/ca-bundle.pem
This finally got me the binary I wanted :-)
Thanks for openconnect btw! Feel free to apply or modify+apply the patch to the
repo.
Ciao
Jörg
--
Joerg Mayer <jmayer at loplof.de>
We are stuck with technology when what we really want is just stuff that
works. Some say that should read Microsoft instead of technology.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gnutls_pk_to_sign.patch
Type: text/x-diff
Size: 1150 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/openconnect-devel/attachments/20130428/3c321569/attachment.bin>
More information about the openconnect-devel
mailing list