[ 
https://issues.apache.org/jira/browse/DIRSERVER-1164?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emmanuel Lecharny updated DIRSERVER-1164:
-----------------------------------------

    Fix Version/s: 1.5.4

Should be easy to fix.

> SSL Cert Compatibility issue with LDAPS for Outlook Clients
> -----------------------------------------------------------
>
>                 Key: DIRSERVER-1164
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1164
>             Project: Directory ApacheDS
>          Issue Type: Improvement
>          Components: ldap
>    Affects Versions: 1.5.2
>            Reporter: Steve
>             Fix For: 1.5.4
>
>
> Any Outlook Version will simply refuse the service to LDAPS on a default 
> apacheds installation.
> The SSL certificate has to match the hostname exactly - if it is empty or you 
> do not connect using
> the DNS name - outlook will simply refuse the connection even if the cert 
> itself is trusted.
> The Standard Apache 1.5.2 distribution should work out of the box with 
> Outlook Clients for using LDAPS - 
> the only catch is the SSL certificate which is automatically generated by 
> apacheDS - it is neither
> trusted by outlook - nor does it contain a valid common name (the DNS name of 
> the server) it seems.
> The first issue can of course not be resolved by the auto key generation when 
> you startup the server - but maybe the DNS address of the certificate.
> Even then - there needs to be a way to easily extract the generated public 
> key so that you can manually trust it on windows clients.
> This issue only applies to Outlook Clients - Thunderbird/LDAPBrowser and Co 
> will ask the user if they want to connect to untrusted sites.
> Alternatively - there should be an option for admins to simply change the SSL 
> key to a valid/trusted one - in 1.52 the only way i found so far
> for modifying the SSL key is programatically this way :
> EntryOperationContext adminEntry = new EntryOperationContext(
>                               directoryService.getRegistries(), 
> PartitionNexus.getAdminName());
>               if (directoryService.getPartitionNexus().hasEntry(adminEntry)) {
>                       
>                       KeyStore store = // load some store from p12 for example
>                       KeyPair keyPair = // load some keypair from store
>                       Attributes entry = new BasicAttributes();
>                       PrivateKey privateKey = keyPair.getPrivate();
>                       entry.put(TlsKeyGenerator.KEY_ALGORITHM_AT, privateKey
>                                       .getAlgorithm());
>                       entry.put(TlsKeyGenerator.PRIVATE_KEY_AT, 
> privateKey.getEncoded());
>                       entry.put(TlsKeyGenerator.PRIVATE_KEY_FORMAT_AT, 
> privateKey
>                                       .getFormat());
>                       PublicKey publicKey = keyPair.getPublic();
>                       entry.put(TlsKeyGenerator.PUBLIC_KEY_AT, 
> publicKey.getEncoded());
>                       entry.put(TlsKeyGenerator.PUBLIC_KEY_FORMAT_AT, 
> publicKey
>                                       .getFormat());
>                       Certificate cert = store.getCertificate(alias);
>                       entry.put(TlsKeyGenerator.USER_CERTIFICATE_AT, 
> cert.getEncoded());
>                       List<Modification> items = 
> ModifyOperationContext.createModItems(
>                                       ServerEntryUtils.toServerEntry(entry, 
> PartitionNexus
>                                                       .getAdminName(), 
> directoryService.getRegistries()),
>                                       
> ModificationOperation.REPLACE_ATTRIBUTE);
>                       directoryService.getPartitionNexus().modify(
>                                       new ModifyOperationContext(
>                                                       
> directoryService.getRegistries(), PartitionNexus
>                                                                       
> .getAdminName(), items));

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to