AWSでSSL証明書を設定する

Cloud Pak for Data

AWS上のNetezza Performance Serverに独自のSSL証明書を設定する方法をご紹介します。

始める前に

以下の証明書および物品があることを確認すること:
  • ドメイン/サーバーSSL証明書

    .pem形式であることを確認してください。 そうでない場合は変換する。 また、名前を「server-cert.pem」に変更する必要がある。

  • サーバーキー。

    server-key.pemにリネームする必要がある。

  • CA証明書またはルート証明書。
  • cacert.pemにリネームする必要がある。
  • 名前空間。

手順

  1. Red Hat OpenShiftクラスターにログインします。
    以下のコマンドを実行することで、コマンドラインからRed Hat OpenShiftクラスターにログインできます。
    oc login https://api.<CLUSTER_NAME>.<ROUTE53_DNS>:6443 --insecure-skip-tls-verify -u kubeadmin -p <password>
    インストールスクリプトは、Red Hat OpenShiftクラスターのログイン情報を '<installation_script_execution_directory>/envs/<CLUSTER_NAME>/assets/oc_login_details に書き込みます。 Red Hat OpenShiftは、インストール中にロール「cluster-admin」を持つデフォルトのユーザー「kubeadmin」を作成します。 クラスタのパスワードは'<installation_script_execution_directory>/envs/<CLUSTER_NAME>/assets/auth/kubeadmin-passwordファイルに保存される。
  2. デフォルトのSSL秘密をあなたの秘密で置き換える。
    export NAMESPACE=<ns>
    oc -n $NAMESPACE delete secret ssl-secret
    oc -n $NAMESPACE create secret generic ssl-secret --from-file=cacert.pem --from-file=server-cert.pem --from-file=server-key.pem
  3. Netezza Performance Server コンソールを再起動します。
    oc -n $NAMESPACE delete pod -l app=console
    # wait for the pod to restart, be RUNNING and Ready=1/1
    # then press Ctrl-C
    oc -n $NAMESPACE get pod -w -l app=console
    NAME                       READY   STATUS    RESTARTS   AGE
    console-8696c4f97c-wbjtq   0/1     Running   0          67s
    console-8696c4f97c-wbjtq   1/1     Running   0          86s
    ^C
  4. SSL証明書が'Netezza Performance Serverのインストール時に指定された'host nameと'domain nameと一致するかどうかを確認する。
    nz-cloudコマンドを実行したインストール・ディレクトリでSLL証明書を確認できます。
    # eg On the system that nz-cloud was run from, in the install directory
    cat envs/lontest2/assets/cp4d_login_details
    cp4d_USERNAME=admin
    cp4d_PASSWORD=......
    cp4d_CONSOLE_URL=https://zen-cpd-zen.apps.{cluster-name}.ibmnzcloud.com    #

    SSL証明書がクラスタ・ドメインを使用している場合は、ステップ4に進みます。

    SSL証明書が'*.{ssl-cert-domain}.comに対して有効であるが、クラスタが'*.{cluster-name}.foobar.comとしてインストールされている場合、以下のサブステップを実行します。
    1. クラウドプロバイダーのDNSエントリに、以下の CNAME エイリアスを追加します。
      • {cluser-name}-cpd.{ssl-cert-domain}.com

        このエイリアスは Cloud Pak for Data ウェブコンソールの URL です。

        CNAMEが'zen-cpd-zen.apps.{cluster-name}.ibmnzcloud.comを指していることを確認する。
      • {cluser-name}-console.{ssl-cert-domain}.com

        このエイリアスは Netezza Performance Server Web コンソールの URL です。

        CNAMEがウェブ・コンソールを指していることを確認してください。
        oc -n $NAMESPACE get svc console | awk '{print $4}'
      • {cluster-name}-nps.{ssl-cert-domain}.com

        このエイリアスはNetezza Performance Serverデータベース自体のエイリアスです。

        CNAMENetezza Performance Serverサービスを指していることを確認します。
        oc -n $NAMESPACE get svc ipshost-external | awk '{print $4}'
      • これらのエイリアスを反映し、使用するようにRed Hat OpenShiftルートを設定します。
        oc create route passthrough --service=console --port=443 -n $NAMESPACE \
                 --hostname={cluster-name}-console.{ssl-cert-domain}.com
        oc create route passthrough -n zen --service=ibm-nginx-svc --port=ibm-nginx-https-port \
                 --hostname={cluster-name}-cpd.{ssl-cert-domain}.com
      • Netezza Performance Server コンソールポッドをリサイクルします。
        oc -n $NAMESPACE scale deployment -l app=console --replicas=0
        oc -n $NAMESPACE get pods -w -l app=console 
        # ... wait until all console pods go away and then press Ctrl-C
        
        
        oc -n $NAMESPACE set env deployment -l app=console CPD_HOST={cluster-name}-cpd.{ssl-cert-domain}.com
        oc -n $NAMESPACE scale deployment -l app=console --replicas=1
        oc -n $NAMESPACE get pods -w -l app=console 
        # ... wait until console pods go to Running state then press Ctrl-C
  5. この Cloud Pak for Data ガイドに従って、SSL 証明書を Cloud Pak for Data ポータルに設定します。
    注: ガイドのステップ7を実行する際、SSL証明書の名前を cert.crt に、キーの名前を cert.key に変更してください。