認証局(CA)署名証明書のSSL
CA証明書は、証明書のサブジェクトのアイデンティティを検証する権限を持つサードパーティまたは認証局(CA)によって作成、署名および発行されます。バージョン3.0.7以降のビッグ・データ・サービス・クラスタでは、ビッグ・データ・サービス証明書ユーティリティ・ツールを実行して、ODHクラスタ用のCA SSL証明書を使用できます。
ノート
- Oracleは発行者証明書を1つ生成し、それをクラスタ・ノードのトラストストアに追加します。
- ビッグ・データ・サービスODHクラスタは、オンデマンドのノード追加および自動スケールをサポートします。CA署名付きSSL証明書が有効なクラスタの場合、ノードの追加中に、ノード追加フローを完了するために新しいノードにOracle署名付き証明書が作成されます。新しく追加されたノードは、後でCA署名証明書で更新できます。
- ビッグ・データ・サービス・バージョン3.0.15以降、ODHはターゲット・ノードのCA署名証明書の更新をサポートしています。たとえば、
un0
およびmn0
です。このような場合、ターゲット・ノードの証明書を指定し、他のすべてのノードでOracle署名証明書を使用する必要があります。 - ビッグ・データ・サービス・バージョン3.0.15より前に作成されたクラスタには、すべてのノードの証明書が必要です。
認証局(CA)署名証明書のSSLの有効化
-
次のファイルを1つのフォルダに収集し、そのフォルダを
.zip
形式に圧縮します。- ノードのFQDNに基づいて、ODHクラスタの各ノードまたはターゲット・ノード(ビッグ・データ・サービス・バージョン3.0.15以降でサポート)のCA署名付きSSL証明書。CA署名証明書は、
.crt
拡張子を持つPrivacy Enhanced Mail (PEM)形式である必要があります。 .key
拡張子を持つ各証明書の秘密キー。- トラストストアのルート証明書。
- ノードのFQDNに基づいて、ODHクラスタの各ノードまたはターゲット・ノード(ビッグ・データ・サービス・バージョン3.0.15以降でサポート)のCA署名付きSSL証明書。CA署名証明書は、
-
opc
ユーザーとしてODHクラスタ・ノードの最初のマスター・ノード(mn0)にSSH接続します。 -
zipファイルを最初のマスター・ノード(mn0)にコピーします。
scp -i <node-key> <source/zip/filepath> opc@<mn0-public-ip>:<path/to/destination>
例:
scp -i ssh_login.key /home/test/certificates.zip opc@192.168.0.10:/tmp/certificates.zip
-
ファイルを展開します。
unzip <filename>.zip -d </path/to/directory>
例:
unzip certificates.zip -d /tmp/certs
-
/home/opc/cloud/flask-microservice/cert_util/conf/bds-certs.conf
を編集します。vi /home/opc/cloud/flask-microservice/cert_util/conf/bds-certs.conf
例:# Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. # [BDS_CERT_CONFIGS] #This files defines all the SSL certificate related configurations used in BDS cluster #Whether custom certificate or not CUSTOM_CERTIFICATE=false #Recommended SSL services, Mostly all the customer facing UI services #Allowed values AMBARI,RANGER,HUE,DATASTUDIO,LIVY DEFAULT_SSL_SERVICES=AMBARI #Comma separated service names for enabling SSL, These are the additional components from ambari UI to enable/disable SSL. #Allowed values ZOOKEEPER,AMS,HDFS,YARN,MAPREDUCE,OOZIE,HBASE,SPARK,HIVE,KAFKA ADDITIONAL_SSL_SERVICES=NONE #Whether to restart all the required services after certificate deployment RESTART_REQUIRED_SERVICES=false #Certificate validity in days. Mostly used for self signed certificates CERTIFICATE_VALIDITY=180 #Bits to be used for certificate generation. Mostly used for self signed certificates CERTIFICATE_BITS=3072 #Algorithm to be used for generating self signed certificate CERTIFICATE_ALGORITHM=sha256 #Default path to store all the certificate, keys and keystore. Same path will be used for hadoop credential store CERT_PATH=/etc/security/serverKeys #Temporary certificate directory. Will be used before applying the certificate TEMP_CERT_PATH=/etc/security/serverKeys_new #Initital certificate generation path. Used only when generating self signed certificates CERT_GEN_FOLDER=/etc/security/serverKeys_cert_gen #Secure password location. This location will be used only during transaction CERT_PASS_PATH=/etc/security/certPass #Whether to take backup when doing certificate renewal. Mostly used for self signed certificates KEEP_OLD_CERTS=true #Set this flag incase utility used for older cluster. It will update the keystore path along with other properties LEGACY_CLUSTER=false #Set Keystore type KEYSTORE_TYPE=jks #This is completely owned by oracle. Leave this field unchanged ORACLE_OWNED_ROOT_CERTIFICATE_NAME=bdsOracleCA.crt ORACLE_OWNED_ROOT_CERTIFICATE_KEY_NAME=bdsOracleCA.key #Final trust bundle that contains all the trust certificates. #Including all public ca root certs, oracle owned root certs and customer specified root certs. #This will be saved in CERT_PATH. Leave this field untouched TRUST_CERTS_BUNDLE_NAME=oraclerootCA.crt #Root Certificate related details ROOT_CERT_PATH=/etc/security/serverKeys/bdsOracleCA.crt #Server certificate details SERVER_CERT_PATH="NONE" SERVER_CERT_KEY_PATH="NONE" #Support for LDAPS LDAP_URL=NONE
-
CUSTOM_CERTIFICATE
プロパティ値をtrue
に更新します。このプロパティは、構成された証明書がCA署名証明書であることをユーティリティ・ツールに示します。 -
クラスタの各ノードまたはターゲット・ノード(ビッグ・データ・サービス・バージョン3.0.15以降でサポート)の証明書パスで、
SERVER_CERT_PATH
プロパティを次の形式でカンマ区切りリストで更新します。<hostname>:<path/to/cert.crt>
ここで、
hostname
は証明書のコピー先のノードですまた、
<path/to/cert.crt>
は、相対パスではなく、証明書ファイルへの完全なパスです。例:
my-mn0-host.com:/tmp/my-mn0-host.com.crt,my-mn1-host.com:/tmp/my-mn1-host.com.crt
-
クラスタの各ノードまたはターゲット・ノード(ビッグ・データ・サービス・バージョン3.0.15以降でサポート)の秘密キー・パスで、
SERVER_CERT_KEY_PATH
プロパティを次の形式でカンマ区切りリストで更新します。<hostname>:<path/to/cert.key>
ここで、
hostname
は秘密キーのコピー先のノードですまた、
<path/to/cert.key>
は、相対パスではなく、秘密キーへの完全なパスです。例:
my-mn0-host.com:/tmp/my-mn0-host.com.key,my-mn1-host.com:/tmp/my-mn1-host.com.key
-
構成ファイルに渡された証明書ファイルに適切なCA証明書チェーン証明書が存在することを検証します(「サーバー証明書」→「中間証明書」→「ルート証明書」)。
# openssl crl2pkcs7 -nocrl -certfile bundle.cert.pem | openssl pkcs7 -print_certs -noout
root_ca証明書を含むbundle.cert.pem。
例:
[root@server1.oracle.com certs]# openssl crl2pkcs7 -nocrl -certfile bundle.cert.pem | openssl pkcs7 -print_certs -noout subject=/C=US/ST=CA/L=San Francisco/O=Example Corp/OU=IT Department/CN=www.example.com issuer=/C=US/ST=CA/O=Example Corp/OU=IT Department/CN=Intermediate CA subject=/C=US/ST=CA/O=Example Corp/OU=IT Department/CN=Intermediate CA issuer=/C=US/ST=CA/L=San Francisco/O=Example Corp/OU=IT Department/CN=Root CA/emailAddress=Email Address subject=/C=US/ST=CA/L=San Francisco/O=Example Corp/OU=IT Department/CN=Root CA/emailAddress=Email Address issuer=/C=US/ST=CA/L=San Francisco/O=Example Corp/OU=IT Department/CN=Root CA/emailAddress=Email Address
ノート
クラスタをカーバライズするために、Active Directory KDC証明書をインポートする必要がある場合があります。ROOT_CERT_PATHで証明書パス(Active Directory KDCの完全なCA証明書チェーンを含む)を指定します。例:- Active Directory KDC SSL接続の完全な証明書チェーンを確認します。
openssl s_client -connect ldaps_server_name:port -showcerts
- 使用可能な証明書が'ROOT_CERT_PATH'で定義されており、前のコマンドのすべての証明書チェーン情報が含まれていることを確認します。
- Active Directory KDC SSL接続の完全な証明書チェーンを確認します。
-
SSLを有効にするサービスで
ADDITIONAL_SSL_SERVICES
プロパティを更新します。このプロパティのデフォルト値は、NONE
です。許可される値は、AMS
、HDFS
、YARN
、MAPREDUCE
、OOZIE
、HBASE
、SPARK
、ZOOKEEPER
、HIVE
およびKAFKA
です。サービスのカンマ区切りリストを使用して、必要なすべてのサービスに対して一度にSSLを有効にすることをお薦めします。 -
ODHクラスタがLDAP/ADと統合されている場合、LDAP_URLをLDAPサーバーURLを指すように更新します(セキュアなLDAPにのみ適用されます)。
例:
LDAP_URL=ldaps://<myldap.com:636>
これにより、必要な証明書がODHトラストストアに自動的にプルされます。
-
このユーティリティでサービスを再起動する場合は、
RESTART_REQUIRED_SERVICES
プロパティ値をtrue
に更新します。このプロパティのデフォルト値は、false
です。デフォルト値を保持する場合は、影響を受けるすべてのサービスをApache Ambariから手動で再起動して、クラスタのSSLの有効化を完了する必要があります。このプロパティの値に関係なく、このユーティリティを使用して証明書を有効にすると、Apache Ambariなどの一部のサービスはただちに再起動されます。 -
古い証明書のバックアップを保持するには、
KEEP_OLD_CERTS
プロパティのデフォルト値のtrue
を保持します。証明書のバックアップは、/etc/security/serverKeys-backup-<dateofbackup>
に格納されます。 -
クラスタ・バージョンが3.0.6以下の場合は、
LEGACY_CLUSTER
プロパティ値をtrue
に設定して、クラスタ内のSSLプロパティを更新します。クラスタ・バージョンが3.0.7以上の場合は、このステップをスキップしてください。 - 構成ファイルに加えた変更を保存します。
-
ユーティリティを実行して、SSL証明書を有効にします。
ambariPass
およびkeyPass
パラメータを使用しない場合、Ambariパスワードおよび秘密キーのパスフレーズを入力するように求められます。秘密キーの生成時に秘密キー・パスフレーズが指定されなかった場合は、パスフレーズを指定する必要はありません。sudo bds_cert_util --enable --ambariPass ambari-password --keyPass private-key-passphrase
- ユーティリティが完了するまで待機します。
-
/home/opc/cloud/flask-microservice/logs/bds_cert_util*.log
のユーティリティ・ログを確認します。 - ユーティリティが正常に実行されると、すべての構成済サービスがSSL上で実行されます。サービスがSSLに対して有効になっているかどうかを確認するには、Apache Ambariにサインインし、各構成済サービスのクイックリンクを選択します。