BIGIPを証明書の認証局にする(2/3)

ここまでの流れ

前回までは認証局を作成しました。

せっかく認証局を作ったので自己署名のサーバー証明書を作ってみます。

環境

  • BIGIP LTM v11.5.3 ~ v12.1.1
  • BIGIP LTM VE v11.3.0

認証局をつくる

1.BIGIPに認証局を作成する

前回の手順を参照してください。

2.サーバー証明書のキーファイルを作成する

# openssl genrsa -des3 -out sample_server.key 2048

Generating RSA private key, 2048 bit long modulus
.................................................+++
.+++
e is 65537 (0x10001)
Enter pass phrase for /shared/CA/sample_server.key:   …①
Verifying - Enter pass phrase for /shared/CA/sample_server.key: …②

①②はパスフレーズを入力します。①と②は同じ値を入力します。

 

/shared/CA/sample_server.keyが作成されたことを確認します。

3.パスフレーズを解除する

パスフレーズは設定したままでもいいのですが、私は忘れてしまうので覚えているうちに解除しておきます。

 

# openssl rsa -in /shared/CA/sample_server.key -out /shared/CA/sample_server_np.key

Enter pass phrase for /shared/CA/sample_server.key: …①
writing RSA key

①はsample_server.keyを作成時に入力したパスフレーズを入力します。

 

以下が作成されます。

/shared/CA/sample_server.key …パスフレーズ付きキーファイル

/shared/CA/sample_server_np.key …パスフレーズを解除したキーファイル

4.署名要求書を作成する

# openssl req -new -days 5475 -sha256 -key /shared/CA/sample_server_np.key -out /shared/CA/sample_server.csr

 

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP …①
State or Province Name (full name) [Some-State]:Kyoto …②
Locality Name (eg, city) []:Nakagyo-ku …③
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Excellence Co., Ltd …④
Organizational Unit Name (eg, section) []:System Innovation …⑤
Common Name (e.g. server FQDN or YOUR name) []:1excellence.com …⑥
Email Address []: …⑦

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: …⑧
An optional company name []: …⑨

①は国名を2文字のレターコードで入力します。日本はJP。

②は国名/州名なのですが、日本なので都道府県でいいかな。

③は都市名なので、市町村名や区名等。

④は組織名なので、会社名とか部署名等。

⑤は組織の単位名なので、部署名、チーム名等。

⑥はFQDN

⑦はメールアドレス(入力しなくてもいい)

⑧はチャレンジパスワード(入力しなくてもいい)

⑨は会社名(入力しなくてもいい)

 

以下が作成されます。

/shared/CA/sample_server.csr

5.サーバー証明書用の認証局の設定をする

# cp /shared/CA/openssl.cnf /shared/CA/openssl-server.cnf

 

コピーしたopenssl-server.cnfの以下を編集する

 

default_days = 365  ← サーバー証明書の有効期限を書き換える(変更しない場合は1年)

#nsCertType = server  ←コメントを外す

6.認証局で署名する

# openssl ca -md sha256 -days 365 -config /shared/CA/openssl-server.cnf \

-in /shared/CA/sample_server.csr \

-keyfile /shared/CA/private/cakey.key \

-cert /shared/CA/cacert.crt \

-out /shared/CA/sample_server.crt

Using configuration from /shared/CA/openssl-server.cnf
Enter pass phrase for /shared/CA/private/cakey.key: …「認証局のパスフレーズ」を入力
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Dec  6 15:31:49 2016 GMT
            Not After : Dec  6 15:31:49 2017 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Kyoto
            organizationName          = Excellence Co., Ltd
            organizationalUnitName    = System Innovation
            commonName                = 1excellence.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Cert Type:
                SSL Server
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
            X509v3 Authority Key Identifier:
                keyid:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX

Certificate is to be certified until Dec  6 15:31:49 2017 GMT (365 days)
Sign the certificate? [y/n]:y …「y」を入力



1 out of 1 certificate requests certified, commit? [y/n]y …「y」を入力
Write out database with 1 new entries
Data Base Updated

7.署名されたサーバー証明書が作成されたことを確認する

# ls -l /shared/CA/sample_server.crt

 

署名されたサーバー証明書が作成されていれば完了です。

付録:こんな時は

署名処理(6の手順)で再度実行すると、以下のエラーになります。

 

failed to update database
TXT_DB error number 2

 

この時は、/shared/CA/index.txtをリネームして、touch /shared/CA/index.txtで作り直してから試してみてください。