NIFI(安全):SSLPeerUndefinedException:Hsotname

时间:2017-09-04 11:58:32

标签: ssl apache-nifi

我想在安全的nifi中使用rest api。我已经使用它的trustore JKS文件添加了sslcontextService但是当我使用带有此url的invokehttp处理器来获取kerberos令牌时:https://ip here/nifi-api/access/kerberos我收到此错误: SSLPeerUndefinedException:Hostname

  1. 在我的jks文件中,subjectAltname为空,这可能是一个原因 失败?

  2. 我也想知道获得令牌之后我可以用它进行自动化,然后根据需要使用rest api或者是否有任何 我应该注意的其他科目?

1 个答案:

答案 0 :(得分:2)

Apache NiFi中没有异常类或名为SSLPeerUndefinedException的底层库。我怀疑你遇到的是SSLPeerUnverifiedException。当远程端点未提供证书或无法验证证书链时,将引发此异常。

您可以采取一些步骤来尝试识别问题:

  1. 确保您的NiFi实例所呈现的证书也在信任库中。 PrivateKeyEntry应该加载到密钥库(keystore.jks或类似名称)中,但信任库是不同的 - 它包含trustedCertEntry,其中包含SubjectKeyIdentifier和各种证书指纹(MD5,SHA1,SHA-256),以便它可以断言提供这些证书的服务的有效性。如果与SSLContextService处理器关联的InvokeHTTP无法验证NiFi提供的证书,则不允许连接。
  2. 尝试使用curl或其他命令行工具(如Nipyapi)连接到NiFi API并验证连接。
  3. Kerberos票证用于身份验证 - 通过知识/拥有某些秘密值证明您/客户是您声称的人。 授权或确定允许的操作和权限是一个单独的过程。

    证书中subjectAltName为空可能会导致新浏览器出现问题,因为RFC 6125表示必须首先检查SAN,但我不相信当前版本的这里使用的okhttp库强制执行。您应该填充SAN字段以便将来兼容。