Thanks for the most compreensive reply so far Sander.
I see, the problem is not easy at all, Now Im curious to know how other people 
dealed with this problem, if they discovered it at all. if I were not in a 
country with accented characters probably this would never be a problem to me.

I will try to follow the results of this patch you've showed me , hope it works 
ok, but meanwhile I wlil change strategy
(now that I know is not any missing configuration on my system)

mod_authz_ldap has another way to validate a certificate. Instead of using the 
issuer and subject fields I will try to use all the client certificate as the 
validation field, this way I dont have to deal with utf8 problems, I hope...

Luis

> From: scte...@apache.org
> Date: Sat, 1 May 2010 09:29:21 -0500
> To: users@httpd.apache.org
> Subject: Re: [us...@httpd] UTF-8 strings through ap_log_cerror
> 
> Luis, 
> 
> On Apr 30, 2010, at 3:28 PM, Luis Neves wrote:
> 
> > Hi list members,
> > 
> > see here http://marc.info/?l=apache-httpd-dev&m=127242179232546&w=2
> > 
> > I am the original poster of this issue, unfortunally so far I have no 
> > answers to my problem and maybe you can give me some clues
> > 
> > I think this issue is not only related to the logs apache is creating "in 
> > ssl_engine_kernel.c" but must be in another place as well, i say this 
> > because the mod_authz_ldap is using the incorreclty values (with '\x') to 
> > query the ldap directory.
> > So IMHO it needs fixing somewere else too.....
> 
> I am not sure, but I think what's going on is that 
> modules/ssl/ssl_engine_vars.c calls X509_NAME_oneline() on line 382 and 388 
> (in trunk).  This populates the "environment" variables that I assume you 
> have configured to pass on to mod_authz_ldap.  Per Stephen Henson on the 
> openssl-users list, the right function to use is X509_NAME_print_ex() using 
> (per Kaspar Brand on the d...@httpd list) a memory BIO and XN_FLAG_RFC2253 
> for formatting.  
> 
> Using X509_NAME_print_ex() in these spots would get the DN out of the 
> certificate in a sensible format.  The problem is, however, that the 
> ssl_var_lookup_ssl_cert() function returns a char *, not a wchar_t *.  So, 
> even if we were to have get the certificate data in the right format, we 
> couldn't pass it up the call stack without escaping it since 
> ssl_var_lookup_ssl_cert(), ssl_var_lookup_ssl(), ssl_var_lookup() and all the 
> functions that call it all expect a char *, and return a char *.  This goes 
> up all the way to the ssl_hook_Fixup() function registered as  the 
> ap_hook_fixups handler for mod_ssl: this is where the "environment" gets 
> populated with stuff that mod_authz_ldap can use.  To fix this issue would 
> mean making this call stack Unicode clean all the way to the top.  This of 
> course may cause an avalanche of side effects throughout the code, so before 
> you know it you're rewriting the entire web server.  
> 
> So regarding your last comment on the OpenSSL list, it's not that basic.  
> mod_ssl has been part of Apache for ten years or more, and existed as a third 
> party module before that.  I would not be surprised if Unicode did not exist 
> when this code was written, so the reason we use a legacy function there is 
> that it is, really, legacy code.  
> 
> I doubt you're the first to run into this issue.  However, apparently no one 
> confronted with the problem of UTF-8 characters in a client certificate DN 
> has had the time, acumen and energy to solve the problem.  
> 
> > I need somebody to confirm this because if it is the case I need to find 
> > other way to check the certificates
> > If not, so how do I am suposed to use the correct values on the other 
> > modules?
> > and lastly: should a BUG be filed for this?
> 
> As it happens, there is a partial patch in bug 48780: 
> 
> https://issues.apache.org/bugzilla/show_bug.cgi?id=48780
> 
> However, I don't know if you can stuff Unicode DNs into a char * like Peter 
> is doing.  And we'd have to do the same thing for the Issuer field.  But if 
> this works, maybe we should entertain it.  Luis, would this solve your 
> problem? 
> 
> S. 
> 
> > Thank you a lot
> > Luis
> > 
> > just for context, heres my first post on this problem:
> > 
> > I am trying to match the values coming from apache/mod_ssl/mod_authz_ldap 
> > against some fields (subjectDN and issuerDN) in an Openldap directory
> > the problem is that Apache is receiving certificate data that contains UTF8 
> > encoded chars
> > 
> > That chars are being incorrectly encoded with '\x' characters (deprecated 
> > source code? bug?) and this is making the effect of mod_authz_ldap failing 
> > the query with "bad search filter" error
> > 
> > Here some example data on the ssl_error.log
> > http://www.mail-archive.com/openssl-us...@openssl.org/msg60934.html
> > 
> > I need help on solving this, Iam sucked and dont know what to do to put 
> > this thing working
> > Can someboby help me please?
> > 
> > PS: Im using Apache 2.2.3 on a Centos 5.4, against openldap
> > 
> > Hotmail: Trusted email with Microsoft’s powerful SPAM protection. Sign up 
> > now.
> 
> 
> 
> -- 
> Sander Temme
> scte...@apache.org
> PGP FP: 51B4 8727 466A 0BC3 69F4  B7B8 B2BE BC40 1529 24AF
> 
> 
> 
> 
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
>    "   from the digest: users-digest-unsubscr...@httpd.apache.org
> For additional commands, e-mail: users-h...@httpd.apache.org
> 
                                          
_________________________________________________________________
Hotmail: Trusted email with powerful SPAM protection.
https://signup.live.com/signup.aspx?id=60969

Reply via email to