[mod_gnutls-devel] HTTP_FORBIDDEN-ignored-bug (was:Re: Certificate-based authentication)
Marc Ende
marc.ende at ymail.com
Wed May 7 12:32:21 CEST 2014
Hi,
after a few further investigations I've found this:
[Wed May 07 11:34:01 2014] [debug] gnutls_hooks.c(1144): [client
xxx.xxx.xxx.xxx] GnuTLS: A Chain of 1 certificate(
s) was provided for validation
[Wed May 07 11:34:01 2014] [debug] gnutls_hooks.c(1198): [client
xxx.xxx.xxx.xxx] GnuTLS: Verifying list of 1 certi
ficate(s) via method 'cartel'
[Wed May 07 11:34:01 2014] [info] [client xxx.xxx.xxx.xxx] GnuTLS: Could not
find Signer for Peer Certificate
[Wed May 07 11:34:01 2014] [info] [client xxx.xxx.xxx.xxx] GnuTLS: Peer
Certificate is invalid.
[Wed May 07 11:34:01 2014] [error] [client xxx.xxx.xxx.xxx] File does not
exist: /var/www/favicon.ico
The request with the certificate (the one who is not signed by the correct ca)
is received. After that it's correctly processed, what means: It's found as
incorrect. After another reload it's passed to the webspace. (that's what
shouldn't happen)
Personally I think that there is something strange with the authentication
hook:
ap_hook_access_checker(mgs_hook_authz, NULL, NULL,
APR_HOOK_REALLY_FIRST);
mgs_hook_authz returns the HTTP_FORBIDDEDN corrently (the return value is
403). But this result isn't used correctly (in apache I think).
As such I think this will be a bug. But I don't know on which side? For me it
seems that's an apache issue.
Marc
Am Mittwoch, 7. Mai 2014, 07:45:26 schrieb Marc Ende:
> Hi,
>
> within one of my servers I use certificate based authentication. Everything
> works great but without a simple thing:
>
> * If I log in with a certificate which is signed by the ca mentioned in
> GnuTLSClientCAFile the access is granted as expected.
>
> * If I log in with a certificate which is NOT signed by the ca mentioned in
> GnuTLSClientCAFile the access is also granted (not expected).
>
> The second one was signed by the CA which has signed the certificate of the
> webserver himself. I haven't tested this with a certificate which was signed
> by someone else. But also in this case I wouldn't be happy with the fact
> that everyone with a signed certificate of this (webserver-)CA has access.
>
> May be I've got an issue in my configuration....
>
> My configuration:
>
> GnuTLSEnable on
> GnuTLSExportCertificates on
> GnuTLSPriorities SECURE256:-CIPHER-ALL:+COMP-DEFLATE:-MAC-ALL:-MD5:-
> ANON-DH:-3DES-CBC:-CAMELLIA-256-CBC:-CAMELLIA-128-CBC:-AES-256-CBC:-AES-128
> - CBC:+VERS-TLS1.2:+VERS-TLS1.1:+SHA512:+SHA384:+SHA256:+SHA1:+VERS-TLS1.0:
> +ARCFOUR-128:+CAMELLIA-256-CBC:+AES-256-CBC
>
> GnuTLSCertificateFile /etc/apache2/ssl/webserver.cert
> <-Webserver-CA GnuTLSKeyFile /etc/apache2/ssl/webserver.key
> GnuTLSClientVerify require
> GnuTLSClientCAFile /etc/apache2/ssl/site.ca.asc <-ClientCA
>
> Thanks for your help
>
> Marc
>
> _______________________________________________
> mod_gnutls-devel mailing list
> mod_gnutls-devel at lists.gnutls.org
> http://lists.gnupg.org/mailman/listinfo/mod_gnutls-devel
More information about the mod_gnutls-devel
mailing list