Sertifika kullanarak ldapsearch'ün tls üzerinden SLES üzerinde çalışmasını nasıl sağlayabilirim?


12

Bir sertifika kullanarak php betiğimizi tls üzerinden LDAP'ye bağlamalıyız. LDAP bağlantısı tls olmadan iyi çalışır. Daha fazla ayrıntı burada /programming/15260252/how-to-use-multiple-tls-certificates-for-ldap-from-php-zend

Softerra LDAP Tarayıcısını kullanarak Windows'tan tls ile bağlanmayı başardık. Bir sertifika yüklememizi ve ona güvenip güvenmememizi istedi.

Sonuçta php TLS kullanarak LDAP ile kimlik doğrulaması yapabilmek. Bana .cer tipinde bir sertifika verildi. Bir Windows Exchange makinesinden geliyor. Görebildiğim kadarıyla SLES .pem sertifikalarını destekler. Benim sorum ...

S1: Sertifikayı istemciye (SLES sunucusu) yükleyebilmem için önce .cer'den .pem'e dönüştürmem gerekiyor mu ve son olarak Q2: php uygulamamın kullanabilmesi için bu sertifikayı sunucuya yüklemenin en iyi yolu nedir? erişin ve işini yapın . SLES sunucusunda farklı LDAP sunucularına bağlanmamız gerektiğini unutmayın.

Şu anda koşarsak

ldapsearch -H ldaps://localhost:9215 -W

aldık

Enter LDAP Password: 
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
additional info: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (unable to get local issuer certificate)

Burada birçok iyi bilgi buldum http://www.php.net/manual/de/function.ldap-connect.php#36156 ve özellikle bu cümle gözlerimde önemliOnce you've gotten the ldapsearch tool working correctly PHP should work also.


  • SUSE Linux Kurumsal Sunucu 11 (x86_64)
  • ldapsearch: @ (#) $ OpenLDAP: ldapsearch 2.4.26 (26 Eylül 2012 13:14:42) $ abuild @ baur: /usr/src/packages/BUILD/openldap-2.4.26/clients/tools (LDAP kütüphanesi: OpenLDAP 20426)

Hata ayıklamanın alternatif bir yolu LDAP bölümünü yok saymak ve sadece SSL'ye bakmaktır: Sunucunun kullandığı sertifikayı ve doğrulama sonuçlarını tükürmek için "openssl s_client -connect localhost: 9215" komutunu çalıştırabilirsiniz.
Mart'ta Kowh

TAMAM. Bunu geliştiriciye ileteceğim. Kişisel olarak sertifikayı nasıl yüklediğimi hâlâ anlamıyorum ve erişmek istediğimde sunucuya bağlı.
Radek

Yanıtlar:


25

Bu, sunucudaki sertifikanın süresinin dolduğu veya geçersiz olduğu anlamına gelir.

Geçici çözüm gelince LDAPTLS_REQCERT, sertifikayı yoksaymak için değişkeni kullanın, örneğin:

LDAPTLS_REQCERT=never ldapsearch -D "cn=drupal-test,ou=Services,dc=example,dc=com" -w my_pass -h ldap.example.com -b "ou=People,dc=example,dc=com" -s sub -x -ZZ "(uid=admin)"

Aksi takdirde sertifikayı alabilir ve güvenilir olarak işaretleyebilirsiniz.


Parametreyi ldap.confayarlamak için mevcut bir dosyanın olmadığı yerlerde cygwin üzerinde de çalışır TLS_REQCERT.
bvj

8

Pem'den cer'e dönüşümden emin değilim, ancak ldapsearch'ün ldap.conf veya w / o sahip olduğu global certs değiştirme izinlerine sahip certs kullanmak için bunu yapabilmelisiniz:

env LDAPTLS_CACERT=/path/to/cert ldapsearch

1

kullanma

LDAPTLS_REQCERT=never

LDAP sunucusunun sertifika doğrulamasını kaldırır. Bu, TLS tarafından sağlanan güvenliği ilk etapta geçersiz kılar. Bunu yapma. Bir sorun varsa sertifikaları düzeltmeniz ve ardından LDAP istemcisine tink tarafından açıklanan sertifika yetkilisini sağlamanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.