はい、現在お使いのプロセッサは、それがhttps://www.twitter.comを特定する証明書を受け取ること(または実際のURLが何であれ)と言っているが、それが提示された証明書との間の完全なチェーンを構築することはできません opensslコマンドの出力既知のCA /信頼できる証明書。これは、デフォルトでは、NiFiは信頼できる証明書を知らないためです。
マシンがJava以外のTwitter証明書を検証できることを確認できますか?あなたはそうするように、このopensslコマンドを使用することができます。
$ openssl s_client -connect <host:port> -debug -state
あなたはかなり長いですが含まれ、結果が表示されるはずです。重要な部分がある
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
Session-ID: 7FD9B2...F2A0CD
Session-ID-ctx:
Master-Key: 5847F71...0C2599
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 129600 (seconds)
TLS session ticket:
0000 - 0a c4 e2 31 be 96 ac 47-87 a4 38 98 0f 39 cf 24 ...1...G..8..9.$
...
0090 - 14 c9 bd 6a d7 ca 01 6b-09 40 6a eb 5d e0 4e f5 [email protected]].N.
Start Time: 1485890791
Timeout : 300 (sec)
Verify return code: 0 (ok)
:
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert SHA2 High Assurance Server CA
verify return:1
depth=0 C = US, ST = California, L = San Francisco, O = "Twitter, Inc.", OU = Twitter Security, CN = api.twitter.com
verify return:1
SSL_connect:SSLv3 read server certificate A
、最終的にリターンコードの確認:0(ok)。
これが成功した場合は、トラストストアで信頼できるとマークされた正しいCA証明書がJavaにあることを確認できます。ご使用のJavaおよびOSのバージョンに応じて、JREおよびca-certificates
パッケージ(on * nix)を更新する必要があります。私は以下の書いたもの
EDIT
はGetHTTP
とInvokeHTTP
プロセッサ、ないGetTwitter
に適用されます。
あなたは$JRE_HOME/lib/security/cacerts
にトラストストア・ファイルを指すStandardSSLContextService
でコントローラーサービスを(例えば、私のMac上で、それは/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/security/cacerts
である)を設定、およびJKS
にトラストタイプとトラストストアを設定することができますパスワード〜changeit
。
デフォルトでこれを追加することについて議論しているan existing Jiraがありますが、その決定に賛否両論があります。
あなたが書いたものがgetHTTPとInvokeHTTPにのみ適用される場合は、GetTwitterの問題をどのように解決するか知っていますか? @Andy – Danzo
そのため、上記のデバッグ手順を追加しました。 's_client'コマンドの結果はどうでしたか? – Andy
元の投稿を編集してスクリーンショットを追加しました。 @Andy – Danzo