2017年2月7日火曜日

Beeline用(Knox経由)のTruststoreを作る


1)PEMフォーマットの証明書を作成
echo "" | openssl s_client -connect node7.localdomain:8443 -prexit 2>/dev/null | sed -n -e '/BEGIN\ CERTIFICATE/,/END\ CERTIFICATE/p;/END\ CERTIFICATE/q' > knox-cert.pem
または、
keytool -exportcert -rfc -file ./knox-cert.pem -keystore /usr/hdp/current/knox-server/data/security/keystores/gateway.jks -alias gateway-identity [-storepass XXXXXXXX]

2)あたらしいTruststoreを作成
keytool -import -alias knox -keystore ./myNewTrustStore.jks -file ./knox-cert.pem -noprompt -storepass changeit

3)Beelineでテスト
beeline --verbose -u "jdbc:hive2://node7.localdomain:8443/;ssl=true;sslTrustStore=./myNewTrustStore.jks;trustStorePassword=changeit;transportMode=http;httpPath=gateway/default/hive" -n admin -p admin-password -e "show databases;"

備考:
"node7.localdomain"はKnoxがインストールされたサーバ
" 2>/dev/null"はあってもなくても可。不必要な行が見えるだけ。
何故か証明書が二回出力されるので";/END\ CERTIFICATE/q"
" -p admin-password"は" -w ./.passwords"などのパスワードファイルのほうが良いかも

1 件のコメント:

  1. すいません、投稿みて設定したところjdbc接続の時に401エラーになりまして、証明書のインポートは接続時に使用するjdbcで良いのでしょうか

    返信削除