NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE の SSL 証明書を入れ替えてみる。

Nutanix CE の SSL(TLS)証明書を入れ替えていみます。証明書は、一般的には商用 CA や Let's Encrypt などから入手することが多いと思います。今回はとりあえずラボ環境で Web ブラウザの証明書エラーを回避したいので、Linux マシンにインストールされていた openssl で証明書を作成してみます。

今回の内容です。

今回の環境

下記のように構築した Nutanix CE 2.0 を利用しています。

openssl の実行環境です。今回は Oracle Linux 7 で作成しましたが、CVM でもこの手順で作成できます。

$ openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
$ cat /etc/oracle-release
Oracle Linux Server release 7.9

今回の証明書の発行 → 入れ替えのイメージです。

1. openssl での証明書作成

1-1. CA の構築

証明書関連ファイルをまとめるフォルダを作成しておきます。

$ mkdir ./lab-cert

CA 証明書の生成に使用する鍵ファイルを、ca.key という名前で作成します。

$ openssl genrsa -out ./lab-cert/ca.key 2048

CA 証明書を ca.crt というファイル名で作成します。

今回のサブジェクトは下記のように設定しています。

  • C(Country): JP
  • ST(State): Tokyo
  • L(Location): HomeLab
  • O(Organization): go-lab.jp
  • OU(Organization Unit): Nutanix
  • CN(Common Name): NutanixCE-CA
$ openssl req -x509 -new -sha512 -nodes \
-days 3650 \
-subj '/C=JP/ST=Tokyo/L=HomeLab/O=go-lab.jp/OU=Nutanix/CN=NutanixCE-CA' \
-key ./lab-cert/ca.key \
-out ./lab-cert/ca.crt

1-2. Prism Element むけ証明書の作成

プライベート鍵ファイルを prism.key という名前で作成します。今回は、Prism でインポートする際のデフォルト選択肢にあわせて、RSA 2048bit で作成しています。

$ openssl genrsa -out ./lab-cert/prism.key 2048

CSR(Certificate Signing Request)を、prism.csr というファイル名で作成します。

  • C(Country): JP
  • ST(State): Tokyo
  • L(Location): HomeLab
  • O(Organization): go-lab.jp
  • OU(Organization Unit): Nutanix
  • CN(Common Name): lab-nxce-02.go-lab.jp
$ openssl req -new -sha512 \
-subj "/C=JP/ST=Tokyo/L=HomeLab/O=go-lab.jp/OU=Nutanix/CN=lab-nxce-02.go-lab.jp" \
-key ./lab-cert/prism.key \
-out ./lab-cert/prism.csr

FQDN だけでなく、IP アドレスと、クラスタ VIP / FQDN にも対応させるために、証明書に設定する SAN(Subject Alternative Name)を記載したファイルを作成します。

SAN には、下記のアドレスを指定しています。

  • IP.1: Nutanix クラスタ VIP アドレス
  • IP.2: CVM の IP アドレス
  • DNS.1: Nutanix クラスタ VIP アドレスの FQDN
  • DNS.2: CVM の IP アドレスの FQDN
cat << EOF > ./lab-cert/san.txt
subjectAltName = @alt_names

[alt_names]
IP.1=192.168.20.40
IP.2=192.168.20.42
DNS.1=lab-nxce-02.go-lab.jp
DNS.2=lab-nxce-02-cvm.go-lab.jp
EOF

ファイルが作成できたことを確認しておきます。

$ cat ./lab-cert/san.txt
subjectAltName = @alt_names

[alt_names]
IP.1=192.168.20.40
IP.2=192.168.20.42
DNS.1=lab-nxce-02.go-lab.jp
DNS.2=lab-nxce-02-cvm.go-lab.jp

CSR から、証明書を prism.crt というファイル名で作成します。

$ openssl x509 -req -sha512 -days 3650 \
-CA ./lab-cert/ca.crt \
-CAkey ./lab-cert/ca.key \
-CAserial ./lab-cert/ca.srl -CAcreateserial \
-in ./lab-cert/prism.csr \
-extfile ./lab-cert/san.txt \
-out ./lab-cert/prism.crt

証明書の CN を確認しておきます。

$ openssl x509 -in ./lab-cert/prism.crt -noout -subject
subject= /C=JP/ST=Tokyo/L=HomeLab/O=go-lab.jp/OU=Nutanix/CN=lab-nxce-02.go-lab.jp

SAN にアドレスが設定されていることも確認しておきます。

$ openssl x509 -in ./lab-cert/prism.crt -noout -text | grep -A1 "Subject Alternative Name"
            X509v3 Subject Alternative Name:
                IP Address:192.168.20.40, IP Address:192.168.20.42, DNS:lab-nxce-02.go-lab.jp, DNS:lab-nxce-02-cvm.go-lab.jp

これで、下記のようにファイルが作成されます。

$ file ./lab-cert/*
./lab-cert/ca.crt:    PEM certificate
./lab-cert/ca.key:    PEM RSA private key
./lab-cert/ca.srl:    ASCII text
./lab-cert/prism.crt: PEM certificate
./lab-cert/prism.csr: PEM certificate request
./lab-cert/prism.key: PEM RSA private key
./lab-cert/san.txt:   ASCII text

生成したファイルのうち、下記の3つをダウンロードしておきます。

  • CA 証明書: ca.crt
  • Prism 証明書: prism.crt
  • Prism 証明書のプライベート鍵: prism.key

2. Prism Element での証明書入れ替え

Prism Element で「設定」→「SSL 証明書」を開き、「Replace Certificate」をクリックします。

「Import Key and Certificate」を選択して「Next」をクリックします。

作成しておいた、プライベート鍵、証明書、CA 証明書のファイルを選択して「Import Files」をクリックします。

  • Private Kay: prism.key
  • Public Certificate: prism.crt
  • CA Certificate/Chain: ca.crt

証明書を置き換えたことにより、Web ブラウザがリロードされます。

この時点では、まだアクセス元に CA 証明書をインストールしていないため、あらためて証明書エラーが表示されます。

証明書の情報を確認すると、生成したものに置き換えられたことが確認できます。

証明書に、SAN(サブジェクト代替名)も設定されていることが確認できます。

ログインして「SSL 証明書」画面にアクセスすると、置き換えた証明書の情報が表示されています。

3. クライアント側での CA 証明書インストール

今回は、Windows クライアントで CA 証明書(ca.crt)を右クリック →「証明書のインストール」をクリックします。

「現在のユーザー」が選択された状態で「次へ」をクリックします。

「信頼されたルート証明機関」を選択して「次へ」をクリックします。

「完了」をクリックします。

セキュリティ警告としてインストールの再確認が表示されるので「はい」をクリックします。

これで、Web ブラウザを再起動してから SAN に設定したアドレスで Prism Element にアクセスすると、証明書エラーが表示されなくなります。

以上。

 

©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。