https://wiki.zimbra.com/wiki/Configure_authentication_with_Active_Directory
Since we are going to do this securely (I mean properly) we are going to use LDAPS. This requires a PKI and proper DNS setups. I'm assuming you already have both, but if not I'll provide links.
Select Configure -> Domains -> click on gear icon and select New -> type in your domain name then next -> select your Mail Server then next -> skip SSO, next -> set "Authentication mechanism" to "External Active Directory" -> verify the "AD domain name" since it will probably be something like ad.domainname.com -> put in the FDQN of the Windows domain controller in the ldap:// field (e.g. srv01.ad.domainname.com and set port to 389 (don't check SSL), next -> put in the username and password of the bind user setup previously then finish.
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
to convert the p7b to pem.
https://wiki.zimbra.com/wiki/Preexisting_Certifcate_Installation_for_Zimbra_6.0
Select Configure -> Domains -> Right click on the domain you want to use AD authentication with -> Configure Authentication -> select "External Active Directory" -> verify the "AD domain name" since it will probably be something like ad.domainname.com -> put in the FDQN of the Windows domain controller in the ldap:// field (e.g. srv01.ad.domainname.com and set port to 389 (don't check SSL), next -> skip the bind section -> put in the test AD username and password (no domain required eg, ad\testuser) -> Test.
keytool -import -alias htint -keystore /opt/zimbra/common/lib/jvm/java/lib/security/cacerts -storepass changeit -file /tmp/int.cer
https://wiki.zimbra.com/wiki/LDAP
External Authentication Please see King0770-Notes#External_Authentication_with_LDAP for information on this. External GAL Connecting to an External LDAP Server with SSL If the external LDAP server has a self-signed certificate, you will need to add the cert to the Zimbra keystore(s). Use the following command (substitute your chosen alias and the path to your cert file; all on one line): sudo /opt/zimbra/java/bin/keytool -import \ -alias EXTERNAL-LDAP \ -keystore /opt/zimbra/java/jre/lib/security/cacerts \ -storepass changeit \ -file EXTERNAL-LDAP-CERT-FILE After adding the cert to the keystore, you'll need to restart Tomcat. As the zimbra user, do this: tomcat stop && tomcat start Make sure that you have selected SSL when configuring use of the external ldap server in the admin console. You can verify on the command line that this returns an "ldaps" url: zmprov gd DOMAIN.COM | grep zimbraAuthLdapURL PS : in order to download the certificate, you can use openssl from the zimbra server : openssl s_client -connect EXTERNAL-LDAP:636> EXTERNAL-LDAP-CERT-FILE You just have to clean the resulting file a bit... Find out if your external auth cert had expired If your users cannot access their accounts from the web-client, check to see if the external authentication server's ssl cert expired. If the external authentication's ssl cert expired, you may see errors in the /opt/zimbra/log/mailbox.log file. Caused by: javax.naming.CommunicationException: simple bind failed: 192.168.2.15:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed] To check to see the the external authentication's ssl cert expired, run the following commands: openssl s_client -connect EXTERNAL-LDAP:636> EXTERNAL-LDAP-CERT-FILE.crt openssl x509 -in EXTERNAL-LDAP-CERT-FILE.crt -noout -text Near the top of the output, you should see Validity dates. Example: Not Before: Apr 23 13:54:47 2008 GMT Not After : Apr 23 13:54:47 2009 GMT Tip: For a short-term workaround, set localconfig key ssl_allow_untrusted_certs to true from false. zmlocalconfig -e ssl_allow_untrusted_certs=true