Member since
07-30-2019
3471
Posts
1642
Kudos Received
1020
Solutions
My Accepted Solutions
| Title | Views | Posted |
|---|---|---|
| 143 | 06-03-2026 06:06 PM | |
| 458 | 05-06-2026 09:16 AM | |
| 821 | 05-04-2026 05:20 AM | |
| 493 | 05-01-2026 10:15 AM | |
| 620 | 03-23-2026 05:44 AM |
02-05-2020
05:43 AM
2 Kudos
@chhaya_vishwaka NiFi keystore requirements: 1. NiFi Keystore must contain only ONE PrivateKeyEntry 2. NiFi does not support using wildcards in certificate DNs 3. PrivateKeyEntry must support both clientAuth and serverAuth Extended Key Usage (EKU) 4. PrivateKeyEntry must contain at least one Subject Alternative Name (SAN) entry that matches the hostname on which the keystore is being used. You can obtain a verbose output of your keystore using the keytool command to verify all of the above criteria are met: keytool -v -list -keystore <your keystore file> Once above is verified, you need to make sure the truststore being used by all your NiFi nodes contains the complete certificate trust chain for your server certificates. This means if your server certificate was signed by an intermediate CA, your truststore must contain the public certificate for that intermediate CA as well as the public certificate for the signer of the intermediate CA. Yo u may have several intermediate CAs in-line before you finally reach the rootCA (owner and issuer are the same). Once above is verified, now it should be just a matter of authenticated and authorized access to your secured NiFi. By default when you enable TLS in NiFi, all clients/users are expected to authenticate with NiFi using a user certificate which they load in their browser. NiFi does not have local user for purpose of authentication. NiFi can be configured to support additional forms of user authentication such as Spnego, LDAP, kerberos, OpenID connect, etc. Refer to the admin guide and user guide for more detail. Your browser screenshot indicates that you do not have a client/user certificates loaded in your browser which your secured NiFi can trust and since NiFi did not redirect you to login page, you do not have a login provider configured in your login-identity-providers.xml (or nifi.properties file is not configured to use it if you do). Hope this detail helps you on the path to resolving your issue, Matt
... View more
02-04-2020
12:46 PM
@stevenmatison Sorry, i do not off the top of my head. Matt
... View more
02-04-2020
12:43 PM
@Rohitravi The Path Filter is applied against all subdirectories of the configured "Input Directory". Any files found in the base "Input Directory" are still going to be listed. If you had files in "dir4", they should not have been listed. Is dir2 empty? If so can you change your "Input Directory" to /dir1/dir2 instead of /dir1/dir2/dir3. I cannot think of a reason why when filtering based on subdir path that you would still expect to returns from the base directory, so I filed an Apache jira ( https://issues.apache.org/jira/browse/NIFI-7104 ). Another option is to add a RouteOnAttribute processor after your listFile processor to route on only FlowFile where the absolute.path FlowFile attribute included "dir5". Then auto-terminate the unmatched relationship and route the "dir5" relationship on to the next component in your dataflow. Hope this helps, Matt If you found this solution resolves your query, please take a moment to click accept.
... View more
02-04-2020
06:47 AM
@DivyaKaki Since all your certificates have been signed by the same CA, the truststore used by all nodes only needs to contain the public cert for that one CA. Thanks, Matt
... View more
02-03-2020
02:24 PM
@DivyaKaki If you are trying to harden your security, using localhost as the CN for your certificate authority is not good security practice. Your keystore PrivateKeyEntry structure is good. You have 1 entry. That one entry includes two certificates. The first is for the server on which this certificate is being used. The second is the public certificate for the CA that signed certificate 1 in this chain. Certificate 1 has the proper EKUs and a good SAN. Please take a moment to accept the answers that helped solved your query. Matt
... View more
02-03-2020
02:13 PM
@Rohitravi If you only want to list files from directory DIR5, simply provide the complete path to DIR5 in the "Input Directory" ListFile processor configuration property and set Recurse Subdirectories as false. If above is not an option, you may want to try using the following "Path Filter": .*?/DIR5 Hope this helps, Matt
... View more
01-30-2020
12:03 PM
@DivyaKaki It is complaining because the hostname is "ip-10-175-124-250.xxx.com" but that hostname does not exist as SAN in your certificate. I would also be concerned that in the nifi.properties files on each of you nodes you are using localhost as your hostnames. That will not work since that would already resolve to the server itself, so nodes would not be successful at heart beating to one another. As i mentioned much earlier, the keystore has requirements: 1. keystore can only contain ONE PrivateKeyEntry 2. PrivateKeyEntry must support clientAuth and serverAuth EKU 3. PrivateKeyEntry must contain at least one Subject Alternative Name (SAN) that matches the hostname of the server on which the certificate is being used. In your case you have "localhost" as a SAN entry, but no SAN entry for "ip-10-175-124-250.xxx.com" This kinda loops back around to the original command i provided that produced keystores not using localhost. On a side note, looks like after removing the users.xml, you got an expected users.xml created. Now you may be able to cheat here, but I strongly recommend against it for security reasons (but using localhost is already a bad security idea). In the nifi.properties file, you could add each of your servers hostnames to the "nifi.web.proxy.host" property (comma separated list with no spaces). Matt
... View more
01-30-2020
11:20 AM
3 Kudos
@DavidR That is one extremely large flow.xml.gz. I would guess that once uncompressed it falls in the ~1.5 GB size range. My guess is that you have a large number of templates loaded in your NiFi. The Encrypt-Config toolkit serializes the flow.xml.gz in memory in order to re-encrypt the sensitive properties. The "Requested array size exceeds VM limit" is telling you that the action taken has created an array that exceeds the max JVM array size of 2^31-1 elements. Increasing the JVM heap size will not change this max supportable array size. NiFi then ends up with no flow.xml.gz because as a result of the failed encrypt config toolkiit operation, no re-encrypted flow.xml.gz was produced as output. So on next restart attempt of NiFi service, it starts fine and creates a blank flow.xml.gz since one did not exist. This is documented in this bug: https://issues.apache.org/jira/browse/NIFI-6999 Workaround for this issue: 1. Start your NiFi nodes from command line rather then via Ambari. ( <path to nifi>/bin/nifi.sh start ) 2. Once NiFi cluster is back up and running, download and then delete templates stored in NiFi. Access the global menu (upper right corner) --> Templates. This opens a list of all stored NiFi templates. One by one download (optional) and delete each template. Removing stored templates does not affect anything instantiated to the canvas. These actions should greatly reduce the size of your flow.xml.gz. Then try restarting NiFi via Ambari again. Hope this helps, Matt
... View more
01-29-2020
10:44 AM
@Manus I have never seen this. Anytime a relationship is defined in more than one connection, the originating FlowFile will be routed to one connection and clone routed to the other(s). Perhaps you can share a some screenshots of your dataflow showing the behavior you are seeing? Screenshot of flow feeding the output port inside PG1. Screenshot of tope level interconnected Process group PG1, PG2, and PG3. Is the input port inside PG2 connected to anything? What version of NiFi are you using? Thank you, Matt
... View more
01-29-2020
06:08 AM
@DivyaKaki Lets take a step back for a moment here.... What is the full version of NiFi you are running currently? What is set value for following properties in your nifi.properties configuration file: nifi.security.user.authorizer=file-provider Can you share the contents of your authorizers.xml file? Looking at what you shared earlier indicates your file-provider is commented out: <!-- <authorizer>
<identifier>file-provider</identifier>
<class>org.apache.nifi.authorization.FileAuthorizer</class>
<property name="Authorizations File">./conf/authorizations.xml</property>
<property name="Users File">./conf/users.xml</property>
<property name="Initial Admin Identity">CN=NifiAdmin, OU=ApacheNIfi</property>
<property name="Legacy Authorized Users File"></property>
<property name="Node Identity 1">CN=localhost, OU=NIFI</property>
</authorizer> Note that "<!--" indicates the start of a comment block. The comment vlock continues until "-->" is found in the XML. The file-provider should look like this: <authorizers>
<authorizer>
<identifier>file-provider</identifier>
<class>org.apache.nifi.authorization.FileAuthorizer</class>
<property name="Authorizations File">./conf/authorizations.xml</property>
<property name="Users File">./conf/users.xml</property>
<property name="Initial Admin Identity">CN=NifiAdmin, OU=ApacheNIfi</property>
<property name="Legacy Authorized Users File"></property>
<property name="Node Identity 1">CN=localhost, OU=NIFI</property>
</authorizer>
</authorizers> If your provider is in fact still commented out, that will explain why your users.xml and authorizations.xml files are not being correctly built on startup. Thank you, Matt
... View more