2013-09-16 3 views
3

Я пытаюсь настроить приложение для доступа к LDAP-серверу, который прослушивает только только на порту 389, используя расширение StartTLS для обеспечения безопасности. Я хочу получить копию SSL-сертификата, поэтому я могу указать его как известный сертификат (в файле jssecacerts, так как мое приложение написано на Java).Как получить сертификат SSL для LDAP-сервера с помощью StartTLS?

Если он работает на порту 636, я хотел бы использовать OpenSSL так:

openssl s_client -host myhost -port 636 

и захватить сертификат от выхода.

Мой первый, хотя должен был попробовать использовать:

openssl s_client -host myhost -port 389 -starttls ... 

но не поддерживает версию LDAP из STARTTLS.

Затем я попытался с помощью ldapsearch с высоким уровнем отладки:

ldapsearch -ZZ -h myhost -d99 ... 

, и я мог видеть, что более-проволоке данных включает в себя сертификат, но не в такой форме, что я знаю, как использовать.

Есть ли простой способ получить сертификат, используя инструменты командной строки или короткую программу? (Я не особо волнует, на каком языке, но Java было бы идеально)

ответ

1

новая редакция известной InstallCert программы теперь поддерживает STARTTLS для нескольких протоколов, включенных LDAP.

Просто запустите ее так:

java -jar installcert-usn-20131123.jar host_name:389 

и сохранит сертификат для вас в файле jssecacerts хранилища ключей в вашем JRE дереве файлов, а также в файле extracerts хранилища ключей в текущем каталоге. Затем вы можете использовать Java keytool для экспорта сертификатов (ов) в другие форматы.

Добро пожаловать на мою страницу блога Yet another InstallCert for Java, now with STARTTLS support для загрузки и инструкций.

0
  1. ли о соединении, как описано в Javadoc, используя образец кода в верхней части.

  2. Это дает вам SSLSession,, из которого вы можете получить цепочку сертификатов сверстников, из которой вы можете получить X509Certificate сверстника как элемент нуль.

  3. Затем сохраните это, где вам нужно, используя Certificate.getEncoded(), чтобы получить сертификат как массив byte[]. Или вы можете добавить его непосредственно к новому или старому объекту KeyStore и сохранить его.

0

Мы зарегистрировали some of the different methods.

И да, openSSL в последний раз, когда я смотрел. STILL не имеет возможности использовать параметр ptotocol LDAP для параметра starttls. Оно должно быть как:

openssl s_client -connect remote.host:25 -starttls LDAP 
+0

Теперь команда 'openssl s_client -showcerts -connect ldap.hostname.domain.ext: 636' работает для меня с версией OpenSSL' 1.0.1e-fips 11 февраля 2013 года (из моего CentOS). Как описано на вашей связанной странице. –

Смежные вопросы