Я потратил целый день, пытаясь понять эту странную проблему. У меня есть экземпляр NiFi на сервере Linux. Я настроил Ldap-провайдер в логине-идентичности providers.xml нижеОшибка конфигурации LDAPS Apache NiFi
<provider>
<identifier>ldap-provider</identifier>
<class>org.apache.nifi.ldap.LdapProvider</class>
<property name="Authentication Strategy">SIMPLE</property>
<property name="Manager DN"></property>
<property name="Manager Password"></property>
<property name="TLS - Keystore">/Data/ssl/server_keystore.jks</property>
<property name="TLS - Keystore Password">changeit</property>
<property name="TLS - Keystore Type">JKS</property>
<property name="TLS - Truststore">/Data/ssl/server_truststore.jks</property>
<property name="TLS - Truststore Password">changeit</property>
<property name="TLS - Truststore Type">JKS</property>
<property name="TLS - Client Auth"></property>
<property name="TLS - Protocol">TLSv1.2</property>
<property name="TLS - Shutdown Gracefully"></property>
<property name="Referral Strategy">FOLLOW</property>
<property name="Connect Timeout">10 secs</property>
<property name="Read Timeout">10 secs</property>
<property name="Url">ldaps://myserver.hostname:636</property>
<property name="User Search Base">ou=people,dc=xxx,dc=net</property>
<property name="User Search Filter">cn={0}</property>
<property name="Authentication Expiration">12 hours</property>
Когда я начиная Nifi, я получил страницу Логина запроса первого. Тем не менее, я продолжал получать
2016-07-28 00:17:43,527 ERROR [NiFi Web Server-64] org.apache.nifi.ldap.LdapProvider myserver.hostname:636; nested exceptin is javax.naming.CommunicationException: myserver.hostname:636; [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
я пытался использовать Jvm аргумент в bootstrap.conf, как
java.arg.15=-Djavax.net.ssl.trustStore=/Data/ssl/server_truststore.jks
Он работал прекрасно.
Я также пробовал SSLPoke.class с тем же аргументом доверия vm, он также отлично работал.
java -Djavax.net.ssl.trustStore=/Data/ssl/server_truststore.jks SSLPoke myserver.hostname 636
"Successfully connected"
Теперь мой вопрос в том, почему моя конфигурация в NiFi login-identity-providers.xml не работает?
Возможно, у вас могут возникнуть проблемы с свойствами безопасности, установленными в nifi.properties? – tommyyards
У меня была такая же конфигурация nifi.properties, используя ldaps против другого ldap dev-сервера в login-identity-providers.xml, и он работал нормально. Этот сервер ldap dev использует сертификат, подписанный CA, но сервер ldap qa, с которым я столкнулся с проблемой, использует самоподписанный сертификат. Оба сертификата ldap dev и qa импортируются в мой server_truststore.jks. Единственное изменение, которое я сделал для dev ldaps, - это URL-адрес в ldap-provider xml, поэтому я считаю, что проблема не в nifi.properties. Thx –