SSL für von Certificate Authoritys (CAs) signierte Zertifikate
Ein CA-Zertifikat wird von einem Drittanbieter oder einer Certificate Authority (CA) erstellt, signiert und ausgestellt, der/die autorisiert ist, die Identität des Zertifikat-Subjects zu validieren. In Big Data Service-Clustern mit Version 3.0.7 und höher können Sie mit dem Big Data Service-Zertifikatutility CA-SSL-Zertifikate für die ODH-Cluster verwenden.
- Oracle generiert ein Ausstellerzertifikat und fügt es dem Truststore auf den Clusterknoten hinzu.
- Big Data Service ODH-Cluster unterstützen das Hinzufügen und die automatische Skalierung von Knoten nach Bedarf. Bei Clustern, die mit CA-signierten SSL-Zertifikaten aktiviert sind, wird beim Hinzufügen von Knoten ein von Oracle signiertes Zertifikat auf dem neuen Knoten erstellt, um den Knotenhinzufügungsablauf abzuschließen. Neu hinzugefügte Knoten können später mit CA-signierten Zertifikaten aktualisiert werden.
- Ab Big Data Service Version 3.0.15 unterstützt ODH das Aktualisieren von CA-signierten Zertifikaten für Zielknoten. Beispiel:
un0
undmn0
. In diesen Fällen müssen Sie Zertifikate für Zielknoten angeben, und alle anderen Knoten verwenden von Oracle signierte Zertifikate. - Cluster, die vor Big Data Service Version 3.0.15 erstellt wurden, erfordern Zertifikate für alle Knoten.
SSL für von Certificate Authoritys (CAs) signierte Zertifikate aktivieren
-
Sammeln Sie die folgenden Dateien in einem Ordner, und komprimieren Sie den Ordner im Format
.zip
.- CA-signiertes SSL-Zertifikat für jeden Knoten oder alle Zielknoten (in Big Data Service Version 3.0.15 oder höher unterstützt) im ODH-Cluster basierend auf dem FQDN des Knotens. Die von der CA signierten Zertifikate müssen im Privacy Enhanced Mail-(PEM-)Format mit der Erweiterung
.crt
vorliegen. - Private Key jedes Zertifikats mit der Erweiterung
.key
. - Root-Zertifikat für den Truststore.
- CA-signiertes SSL-Zertifikat für jeden Knoten oder alle Zielknoten (in Big Data Service Version 3.0.15 oder höher unterstützt) im ODH-Cluster basierend auf dem FQDN des Knotens. Die von der CA signierten Zertifikate müssen im Privacy Enhanced Mail-(PEM-)Format mit der Erweiterung
-
Stellen Sie als Benutzer
opc
eine SSH-Verbindung zum ersten Masterknoten (mn0) des ODH-Clusters her. -
Kopieren Sie die ZIP-Datei auf den ersten Master-Knoten (mn0).
scp -i <node-key> <source/zip/filepath> opc@<mn0-public-ip>:<path/to/destination>
Beispiel::
scp -i ssh_login.key /home/test/certificates.zip opc@192.168.0.10:/tmp/certificates.zip
-
Entpacken Sie die Datei.
unzip <filename>.zip -d </path/to/directory>
Beispiel::
unzip certificates.zip -d /tmp/certs
-
Bearbeiten Sie
/home/opc/cloud/flask-microservice/cert_util/conf/bds-certs.conf
.vi /home/opc/cloud/flask-microservice/cert_util/conf/bds-certs.conf
Beispiel::# 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
-
Aktualisieren Sie den Wert der Eigenschaft
CUSTOM_CERTIFICATE
intrue
. Diese Eigenschaft gibt dem Utility an, dass das konfigurierte Zertifikat von einer CA signiert wurde. -
Aktualisieren Sie die Eigenschaft
SERVER_CERT_PATH
mit dem Zertifikatspfad für jeden Knoten oder Zielknoten (unterstützt in Big Data Service Version 3.0.15 oder höher) des Clusters in einer kommagetrennten Liste im folgenden Format:<hostname>:<path/to/cert.crt>
Dabei ist
hostname
der Knoten, auf den das Zertifikat kopiert wird.<path/to/cert.crt>
ist der vollständige Pfad zur Zertifikatsdatei, nicht der relative Pfad.Beispiel::
my-mn0-host.com:/tmp/my-mn0-host.com.crt,my-mn1-host.com:/tmp/my-mn1-host.com.crt
-
Aktualisieren Sie die Eigenschaft
SERVER_CERT_KEY_PATH
mit dem Private-Key-Pfad für jeden Knoten oder alle Zielknoten (in Big Data Service Version 3.0.15 oder höher unterstützt) des Clusters in einer kommagetrennten Liste im folgenden Format:<hostname>:<path/to/cert.key>
Dabei ist
hostname
der Knoten, auf den der Private Key kopiert wird.<path/to/cert.key>
ist der vollständige Pfad zum Private Key, nicht der relative Pfad.Beispiel::
my-mn0-host.com:/tmp/my-mn0-host.com.key,my-mn1-host.com:/tmp/my-mn1-host.com.key
-
Stellen Sie sicher, dass das richtige CA-Zertifikatskettenzertifikat in der Zertifikatsdatei vorhanden ist, die in der Konfigurationsdatei übergeben wurde (Serverzertifikat > Zwischenzertifikate > Root-Zertifikat):
# openssl crl2pkcs7 -nocrl -certfile bundle.cert.pem | openssl pkcs7 -print_certs -noout
bundle.cert.pem mit dem Zertifikat root_ca.
Beispiel::
[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
Hinweis
In manchen Fällen müssen Sie das Active Directory-KDC-Zertifikat zum Kerberisieren des Clusters importieren. Geben Sie den Zertifikatspfad (der die vollständige CA-Zertifikatskette des Active Directory-KDC enthält) in ROOT_CERT_PATH an.Beispiel::- Prüfen Sie die vollständige Zertifikatskette für die Active Directory-KDC-SSL-Verbindung:
openssl s_client -connect ldaps_server_name:port -showcerts
- Stellen Sie sicher, dass das verfügbare Zertifikat in "ROOT_CERT_PATH" definiert ist und alle Zertifikatsketteninformationen aus dem vorherigen Befehl enthält.
- Prüfen Sie die vollständige Zertifikatskette für die Active Directory-KDC-SSL-Verbindung:
-
Aktualisieren Sie die Eigenschaft
ADDITIONAL_SSL_SERVICES
mit den Services, für die Sie SSL aktivieren möchten. Der Standardwert für diese Eigenschaft istNONE
. Die zulässigen Werte sindAMS
,HDFS
,YARN
,MAPREDUCE
,OOZIE
,HBASE
,SPARK
,ZOOKEEPER
,HIVE
undKAFKA
. Es wird empfohlen, SSL für alle erforderlichen Services auf einmal zu aktivieren. Verwenden Sie dazu eine durch Komma getrennte Liste der Services. -
Aktualisieren Sie LDAP_URL so, dass es auf die LDAP-Server-URL verweist (nur für sicheres LDAP anwendbar), wenn das ODH-Cluster mit LDAP/AD integriert ist.
Beispiel:
LDAP_URL=ldaps://<myldap.com:636>
Dadurch werden die erforderlichen Zertifikate automatisch in den ODH-Truststore abgerufen.
-
Aktualisieren Sie den Wert der Eigenschaft
RESTART_REQUIRED_SERVICES
intrue
, wenn dieses Utility die Services neu starten soll. Der Standardwert für diese Eigenschaft istfalse
. Wenn Sie den Standardwert beibehalten, müssen Sie alle betroffenen Services über Apache Ambari manuell neu starten, um die SSL-Aktivierung für das Cluster abzuschließen.Unabhängig vom Wert dieser Eigenschaft werden nur wenige Services, wie Apache Ambari, sofort neu gestartet, wenn Sie Zertifikate mit diesem Utility aktivieren. -
Behalten Sie den Standardwert
true
für die EigenschaftKEEP_OLD_CERTS
bei, um ein Backup der alten Zertifikate beizubehalten. Zertifikatsbackups werden unter/etc/security/serverKeys-backup-<dateofbackup>
gespeichert. -
Wenn die Clusterversion 3.0.6 oder niedriger ist, setzen Sie den Wert der Eigenschaft
LEGACY_CLUSTER
auftrue
, um die SSL-Eigenschaften im Cluster zu aktualisieren. Überspringen Sie diesen Schritt, wenn die Clusterversion 3.0.7 oder höher ist. - Speichern Sie die an der Konfigurationsdatei vorgenommenen Änderungen.
-
Führen Sie das Utility aus, um die SSL-Zertifikate zu aktivieren. Wenn Sie die Parameter
ambariPass
undkeyPass
nicht verwenden, werden Sie aufgefordert, das Ambari-Kennwort und die Private-Key-Passphrase einzugeben. Wenn beim Generieren des Private Keys keine Private Key Passphrase angegeben wurde, müssen Sie die Passphrase nicht angeben.sudo bds_cert_util --enable --ambariPass ambari-password --keyPass private-key-passphrase
- Warten Sie, bis das Utility abgeschlossen ist.
-
Prüfen Sie die Utilitylogs unter
/home/opc/cloud/flask-microservice/logs/bds_cert_util*.log
. - Nach erfolgreicher Ausführung des Utilitys werden alle konfigurierten Services über SSL ausgeführt. Um zu überprüfen, ob die Services für SSL aktiviert sind, melden Sie sich bei "Apache Ambari" an, und wählen Sie unter den einzelnen konfigurierten Services die Quicklinks aus.