はじめに
BIGIPをLAN内のロードバランサとして使う時、https通信の暗号化につかう証明書は自己署名にしたいなーって思うことありませんか?
そんな時、BIGIPのサーバー証明書は管理コンソール(WEB画面)で自己署名の証明書を作成できるから簡単ですね。
でも。。クライアント証明書も使いたいぞってなると、どうやって作ろうかって考えてしまいますね。
認証局をつくらなければとなり、どこかOpenSSLの使えるサーバーを探して。。。って流れになります。
まてよ、BIGIPもOpenSSLがデフォルトで使えるじゃないか!じゃあ、やってみようと思って設定してみました。
環境
- BIGIP LTM v11.5.3 ~ v12.1.1
- BIGIP LTM VE v11.3.0
認証局をつくる
1.BIGIPに管理ユーザーでログインする
2.ワークディレクトリを作成する
BIGIPには/sharedというワーク用ファイルシステムがあります。
/sharedに認証局用のディレクトリを作成します。
# mkdir /shared/CA
# mkdir /shared/CA/certs /shared/CA/crl /shared/CA/newcerts /shared/CA/private
# echo "01" > /shared/CA/serial
# touch /shared/CA/index.txt
3.openssl.cnfを用意する
BIGIPで利用されているopenssl.cnfがあるのでコピーして使う方が手っ取り早いということで、コピーします。
# cp /etc/pki/tls/openssl.cnf /shared/CA/openssl.cnf
コピーできたことを確認する
# ls -l /shared/CA/openssl.cnf
コピーしたopenssl.cnfを編集する
dir = ./demoCA → dir = /shared/CA
4.認証局(CA)を作成
# openssl req -config /shared/CA/openssl.cnf -new -x509 -keyout /shared/CA/private/cakey.key -out /shared/CA/cacert.crt -days 5475 -sha256 -newkey rsa:2048
Generating a 2048 bit RSA private key
........................................+++
..........+++
writing new private key to '/shared/CA/private/cakey.key'
Enter PEM pass phrase: …①
Verifying - Enter PEM pass phrase: …②
-----
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 []: …⑨
①②はパスフレーズを入力します。①と②は同じ値を入力します。
③は国名を2文字のレターコードで入力します。日本はJP。
④は国名/州名なのですが、日本なので都道府県でいいかな。
⑤は都市名なので、市町村名や区名等。
⑥は組織名なので、会社名とか部署名等。
⑦は組織の単位名なので、部署名、チーム名等。
⑧はFQDN
⑨はメールアドレス(入力しなくてもいい)
5.認証局の完成
以下が作成されていれば完成です。
/shared/CA/cacert.crt …認証局の証明書(root証明書)
/shared/CA/private/cakey.key …認証局のキーファイル