Re: Extracting SSL_CLIENT_S_DN_UID does not work

Michael Ströder <[email protected]> Fri, 23 May 2008 17:23:34 +0200
Newsgroups gmane.comp.apache.mod-ssl.user
Message-ID <[email protected]>
Joe Orton wrote:
> On Fri, May 23, 2008 at 04:46:48PM +0200, Michael Ströder wrote:
>>> In the current 2.x mod_ssl sources, UID maps to:
>>>
>>> #ifdef NID_x500UniqueIdentifier /* new name as of Openssl 0.9.7 */
>>>     { "UID",   NID_x500UniqueIdentifier   },
>>> #else /* old name, OpenSSL < 0.9.7 */
>>>     { "UID",   NID_uniqueIdentifier       },
>>> #endif
>> Hmm, the user ID is already stored by mod_ssl with attribute name "UID" in 
>> env var SSL_CLIENT_S_DN. Given that it's OpenSSL 0.9.8 and that the 
>> attribute type seems to be interpreted as UID is it safe to assume that the 
>> cert contains the right OID?
> 
> No, unfortunately there is disparity between mod_ssl and OpenSSL here.  
> (I don't know why; I think historically the short name mappings were not 
> unique in OpenSSL possibly, something like that)
> 
> OpenSSL uses "UID" for NID_userId (OID mapping an exercise for the 
> reader, see obj_mac.h in OpenSSL ;).  So in fact that's the tag used for 
> that RDN.

Ok, then the OID in my cert is 0.9.2342.19200300.100.1.1 (attribute type 
'uid' specified for pilotPerson). That seems right to me since it's 
compliant with RFC 4514 which contains a table of short and long 
attribute type names and their OIDs (end of chapter 3).

But now I don't understand the #ifdef-statement mentioned above. From my 
understanding it MUST NOT reference NID_x500UniqueIdentifier. It MUST 
reference NID_userId. To me that looks clearly like a bug in mod_ssl.

Ciao, Michael.

______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
User Support Mailing List                      [email protected]
Automated List Manager                            [email protected]