我在 docker 中有一个安全的Nifi-Registry 实例。我可以访问它的 UI,但我无法通过 NiFi 实例访问它。在注册表客户端部分添加注册表 URL 并尝试访问其存储桶后,我看到此错误:
Unable to obtain listing of buckets: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address 172.17.0.5 found
172.17.0.5 是 docker 网络中的 Nifi-Registry ip 地址。
我使用此 DN 添加了一个对 Nifi-Registry 具有完全权限的用户:CN=localhost, OU=nifi
如本教程中所述:
设置安全的 Apache NiFi 注册表
这是我用来运行容器的命令:
docker run --name nifi -v $(pwd):/opt/certs -p 8443:8443 \
-e AUTH=tls \
-e KEYSTORE_PATH=/opt/certs/keystore.jks \
-e KEYSTORE_TYPE=JKS \
-e KEYSTORE_PASSWORD='Ey0btN5duTeyBv1sVuy+1twPpYNgeoox47iwLwSSx5U' \
-e TRUSTSTORE_PATH=/opt/certs/truststore.jks \
-e TRUSTSTORE_PASSWORD='dSjZjfFQDVNG/p6U6ad7n90dZxd2EJK4W18JM02w9BM' \
-e TRUSTSTORE_TYPE=JKS -e INITIAL_ADMIN_IDENTITY='CN=AdminUser, OU=nifi' \
apache/nifi:latest
docker run --name nifi-registry -v $(pwd):/opt/certs -p 18443:18443 \
-e AUTH=tls \
-e KEYSTORE_PATH=/opt/certs/keystore.jks \
-e KEYSTORE_TYPE=JKS \
-e KEYSTORE_PASSWORD='Ey0btN5duTeyBv1sVuy+1twPpYNgeoox47iwLwSSx5U' \
-e TRUSTSTORE_PATH=/opt/certs/truststore.jks \
-e TRUSTSTORE_PASSWORD='dSjZjfFQDVNG/p6U6ad7n90dZxd2EJK4W18JM02w9BM' \
-e TRUSTSTORE_TYPE=JKS \
-e INITIAL_ADMIN_IDENTITY='CN=AdminUser, OU=nifi' \
apache/nifi-registry:latest
这是工具包命令:
./tls-toolkit.sh standalone -n 'localhost' -C 'CN=AdminUser, OU=nifi' -o './target'
如何通过 nifi 实例访问安全注册表?