panda's tech note

Cisco Wireless LAN Controller (WLC)のHTTPSサーバ証明書設定

Cisco WLCのWebインターフェイス(HTTPS)は,初期設定では自己署名証明書を使用しているため,アクセスする度に証明書の確認を求められます。通常の運用では,管理セグメントで中間者攻撃は稀だとは思いますが,警告を無視する習慣は非常に危険ですし,近年ではLet's Encrypt等の無料証明書の取得も容易になったので,正しい証明書を使うことを強くお勧めします。

ここでは,証明書をWLCにインストールする方法を説明します。Let's Encryptも使おうと思えば使えますが,今回は証明書が手に入った前提で書きます。

PKCS #12形式の秘密鍵・証明書ペアファイルの作成

WLCはPKCS #12形式で保存された署名済みサーバ証明書,秘密鍵,中間CA証明書ファイルのみを受け付けるため,それぞれのPEM形式のファイルを結合して1つのPKCS #12ファイルに変換する必要があります。

まず 以下のファイルを用意します。ファイル名は違っても大丈夫ですが,これ以降は以下のファイル名で説明します。

  • intermediate-ca-certs.crt:中間CA証明書(PEM形式)
  • server-cert.crt:サーバ証明書(署名済み,PEM形式)
  • server.key:サーバ証明書に対応する秘密鍵(PEM形式)

まず,中間CA証明書とサーバ証明書を繋げて1つのファイルにします。

cat intermediate-ca-certs.crt server-cert.crt > bundle.crt

これにより,複数の-----BEGIN CERTIFICATE-----から-----END CERTIFICATE-----で区切られた証明書ファイルがbundle.crtとして生成されます。

次に,以下のコマンドでこの証明書ファイルとサーバ秘密鍵を1つにしたファイルをPKCS #12バイナリフォーマットに変換します。生成されるファイル(wlc-import.p12)は秘密鍵を含みますので,パスワードで暗号化します。パスワード ChangeHereToGoodPassword は適当なものに変更して使ってください。

openssl pkcs12 -export -in bundle.crt -inkey server.key -out wlc-import.p12 -clcerts -passin pass:ChangeHereToGoodPassword

最後に,wlc-import.p12 はバイナリフォーマットでこのままではWLCにインポートできないので,以下のコマンドでこれをPEM形式に変換します。

openssl pkcs12 -in wlc-import.p12 -out wlc-import.pem -passin pass:ChangeHereToGoodPassword -passout pass:ChangeHereToGoodPassword

証明書のインストール

作成した証明書(wlc-import.pem)をインストールするには,まずTFTPサーバにこのファイルを設置します。ここでは,TFTPサーバを192.0.2.101,TFTPのルートディレクトリにwlc-import.pemを置きます。次に,WLCにログインして,MANAGEMENT > HTTP-HTTPSの順に進みます。下図のようにDownload SSL Certificate From Serverというフォームがあるので,そちらにTFTPサーバの情報を図中のフォームの通り入力します。

WLC certificate

必要な項目の入力が終わったら,Download SSL Certificateのチェックボックスにチェックが付いていることを確認して,画面右上のApplyボタンを押せば証明書のインストールが始まります。

なお,冗長化構成になっている場合,ピア(スタンバイ機器)の証明書はインストールされないので,スタンバイ機器をアクティブにしてから再度証明書のインストールを行う必要がありますので注意してください。