Saya mencoba menerapkan TLS sesuai https://help.ubuntu.com/lts/serverguide/openldap-server.html Ketika saya mencoba memodifikasi cn = config database dengan file ldif ini:
dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/test-ldap-server_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/test-ldap-server_key.pem
Saya mendapatkan kesalahan berikut:
ldapmodify -Y EXTERNAL -H ldapi:/// -f certinfo.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)
Apa yang saya lakukan salah?
EDIT: Ketika saya mencoba menggunakan auth sederhana saya mendapat kesalahan berikut:
ldapmodify -x -D cn=admin,dc=example,dc=com -W -f certinfo.ldif
Enter LDAP Password:
ldap_bind: Invalid DN syntax (34)
additional info: invalid DN
Jawaban:
Saya mengikuti panduan yang sama dan memiliki masalah yang sama. Ini akan berfungsi jika Anda melakukan langkah-langkah untuk "Kencangkan kepemilikan dan izin" yang tercantum setelah perintah ldapmodify yang menyinggung pertama - yaitu:
dan
sumber
chgrp openldap
. Bagaimanapun, ini masalah izin. +1sudo chgrp ssl-cert /etc/ssl/private && sudo chmod g+X /etc/ssl/private
Ya saya tidak tahu apakah ini solusi atau hanya solusi, tetapi saya berhasil membuatnya bekerja.
Saya pertama kali menghentikan tamparan dengan:
Lalu saya memulainya dalam mode debug:
Penting untuk memulainya HANYA dengan ldapi: /// URL. Setelah dimulai saya menjalankan perintah ldapmodify dan atributnya diimpor.
Pada akhirnya saya menghentikan mode debug dan memulai slapd secara normal.
sumber
Sebagai tindak lanjut dari jawaban A. Gutierrez , cara terbaik untuk memeriksa akses untuk setiap file adalah dengan menjalankannya
sudo -u openldap cat <filename>
. Saya melihat semua file beberapa kali dan mereka tampaknya memiliki izin diatur dengan benar. Ternyata menjadi masalah grup untuk openldap. Setelah saya akhirnya menemukan itu, sederhanasudo usermod -a -G ssl-cert openldap
memecahkannya untuk saya.sumber
Terkadang masalahnya ada di profil apparmor untuk layanan slapd. Pastikan profil apparmor telah mengizinkan jalur sertifikat untuk daemon.
Secara visual cukup
/etc/apparmor.d/usr.sbin.slapd
. Secara default profil ini memungkinkan untuk membaca sertifikat di lokasi default.Apparmor harus mencegah tindakan yang tidak ditentukan untuk dieksekusi daemon, meskipun izin unix yang tepat.
sumber
/etc/apparmor.d/usr.sbin.slapd
: / etc / letsencrypt / r, / etc / letsencrypt / ** r, dan muat ulang profil apparmor.Seperti yang saya laporkan dalam bug ini di Ubuntu Launchpad , masalah ini juga bisa disebabkan oleh apparmor. Biasanya ini akan ditampilkan di syslog sebagai penolakan akses.
Perbaikannya adalah menyisipkan baris berikut di /etc/apparmor.d/usr.sbin.slapd:
/etc/letsencrypt/** r,
dan kemudian menyegarkan profil:
sumber
Saya punya masalah ini juga. Masalahnya adalah pengguna yang menjalankan slapd tidak memiliki akses ke file sertifikat. Periksa bahwa pemilik file itu adalah pengguna openldap.
sumber
Bagi saya masalahnya adalah urutan catatan yang salah - inilah yang berfungsi:
sumber
Sayangnya ini tampaknya menjadi kesalahan "default" yang Anda dapatkan untuk apa saja. @wulfsdad's anwser biasanya memperbaikinya.
Satu hal lain yang saya selalu lupa adalah bahwa secara default di ubuntu slapd ingin kunci dalam format openssl. Saya mengatur tetapi PCKS # 8 kunci ke dalamnya dan berharap itu hanya berfungsi (yang seharusnya adil). Jika Anda mencoba semua jawaban di atas juga pastikan kunci memiliki format yang tepat. Ketika googling tentang kesalahan Anda biasanya membaca tentang izin yang salah dan menggosok kepala Anda mengapa apache bekerja dengan slapd sangat tidak suka.
sumber