Làm cách nào để làm cho ldapsearch hoạt động trên SLES qua tls bằng chứng chỉ?


12

Chúng ta cần kết nối tập lệnh php của mình với LDAP qua tls bằng chứng chỉ. Kết nối LDAP hoạt động độc đáo mà không cần tls. Thêm chi tiết tại đây /programming/15260252/how-to-use-multipl-tls-certert-for-ldap-from-php-zend

Chúng tôi đã quản lý để kết nối qua tls từ Windows bằng Softerra LDAP Browser. Nó yêu cầu chúng tôi cài đặt một chứng chỉ và liệu chúng tôi có tin tưởng nó không.

Kết quả cuối cùng của tôi là có thể xác thực bằng LDAP bằng TLS từ php. Tôi đã được cấp giấy chứng nhận loại .cer. Nó đến từ một máy Windows Exchange. Từ những gì tôi có thể thấy SLES hỗ trợ chứng chỉ .pem. Vì vậy, câu hỏi của tôi là ...

Q1: Tôi có cần chuyển đổi từ .cer sang .pem trước khi tôi có thể cài đặt chứng chỉ trên máy khách (máy chủ SLES) và cuối cùng là Q2: cách tốt nhất để cài đặt chứng chỉ này trên máy chủ để ứng dụng php của tôi có thể truy cập nó và làm công việc của nó . Lưu ý rằng trên máy chủ SLES, chúng tôi cần kết nối với các máy chủ LDAP khác nhau.

Hiện tại nếu chúng ta chạy

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

chúng tôi nhận được

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)

Tôi tìm thấy rất nhiều thông tin tốt ở đây http://www.php.net/manual/de/feft.ldap-connect.php#36156 và đặc biệt câu này rất quan trọng trong mắt tôiOnce you've gotten the ldapsearch tool working correctly PHP should work also.


  • SUSE Linux Enterprise Server 11 (x86_64)
  • ldapsearch: @ (#) $ OpenLDAP: ldapsearch 2.4.26 (ngày 26 tháng 9 năm 2012 13:14:42) $ abuild @ baur: /usr/src/packages/BUILD/openldap-2.4.26/clents/tools (thư viện LDAP: OpenLDAP 20426)

Một cách khác để gỡ lỗi là bỏ qua phần LDAP và chỉ cần nhìn vào SSL: Bạn có thể chạy "openssl s_client -connect localhost: 9215" để nhổ chứng chỉ mà máy chủ sử dụng và kết quả xác thực.
Cửu Long

ĐỒNG Ý. Tôi sẽ chuyển nó cho nhà phát triển. Cá nhân tôi vẫn không hiểu cách tôi cài đặt chứng chỉ và nó được liên kết với máy chủ khi tôi muốn truy cập nó.
Radek

Câu trả lời:


25

Điều đó có nghĩa là chứng chỉ trên máy chủ đã hết hạn hoặc không hợp lệ.

Đối với cách giải quyết, sử dụng LDAPTLS_REQCERTbiến để bỏ qua chứng chỉ, ví dụ:

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)"

Nếu không, bạn có thể nhập chứng chỉ và đánh dấu là đáng tin cậy.


Hoạt động trên cygwin quá nơi không có ldap.conftệp hiện có để đặt TLS_REQCERTtham số.
bvj

7

Tôi không chắc chắn về việc chuyển đổi từ pem sang cer, nhưng để thực hiện ldapsearch, hãy sử dụng certs với ldap.conf hoặc w / o các quyền để sửa đổi certs toàn cầu, bạn có thể thực hiện điều này:

env LDAPTLS_CACERT=/path/to/cert ldapsearch

1

Sử dụng

LDAPTLS_REQCERT=never

xóa xác thực chứng chỉ của máy chủ LDAP. Điều này làm trống bảo mật được cung cấp bởi TLS ở nơi đầu tiên. Đừng làm điều này. Bạn nên sửa các chứng chỉ nếu có vấn đề và sau đó cung cấp cho khách hàng LDAP quyền ủy quyền chứng chỉ như được mô tả bởi tink.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.