0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

自己署名証明書を使用してWindows ServerでUniFi NetworkのSSL通信をセットアップする方法

Last updated at Posted at 2023-05-24

はじめに

「UniFiNetworkApplication」を稼働させている状況で、WebページにアクセスするとGoogleが毎回警告を表示してくるのが面倒だと感じ、また証明書についての知識も身につけたいと思い、SSL通信の実装に挑戦することにしました。ただし、この通信はプライベートネットワーク内で完結するため、自己署名証明書を利用しています。

環境

CA(認証局)
 OS:WindowsServer2019
 ActiveDirectory証明書サービスインストール済み
 ※ActiveDirectoryとして利用しています。

UniFiNetworkApplicationサーバ(以下、UniFiサーバ)
 OS:WindowsServer2019
 UniFiNetworkApplicationをサービスとして実行済み
 ※サービスとして実行する方法はこちらで紹介しています。

ブラウザ
 GoogleChrome

前提条件

  1. ここではWindows Serverの機能であるActive Directory証明書サービスを利用しています。事前にインストールと設定を完了させるか、別の証明書発行サービスを利用して代替してください。
  2. UniFiサーバは事前にドメイン参加しているものとします。
  3. 各サーバは固定のIPアドレスが割り振られていること。
  4. DNSによる名前解決が出来ること。もしくはhotsファイルで名前解決が出来ること。
  5. CAの役割をさせるサーバの証明書をブラウザにCAの証明書が「信頼できるルート証明機関」にインポートされていること。

手順

KeyStore Explorerのダウンロード・セットアップ

https://keystore-explorer.orgでkeystore explorerをダウンロードします。
ダウンロードが出来たら、UniFiNetworkApplicationが稼働しているサーバにインストールします。

keystoreについて
UniFiNetworkApplicationはkeystoreというファイルに証明書を保存しています。
普通の方法では中身を確認することが出来ないため、Javaのコマンドを使って証明書を上書きするか、KeyStore Explorerを使ってGUIで操作する必要があります。

証明書の発行

UniFiサーバでコンピューター証明書の管理を開きます。
image.png

ファイル名を指定して実行で「certlm.msc」と入力しても出てきます。
image.png

証明書の管理コンソール(certlm.msc)が出てきます。
image.png

証明書の管理コンソール(certlm.msc)を開いたら、「証明書 - ローカルコンピューター > 個人 > 証明書」と進み、証明書の一覧を表示します。
証明書の一覧で右クリックをして、表示されるメニューから「すべてのタスク(K) > 新しい証明書の要求(R)...」を選択します。
image.png

「次へ(N)」をクリック。
image.png

ドメイン参加しているので、「ActiveDirectory 登録ポリシー」を選択して「次へ(N)」をクリックします。
image.png

もしドメイン参加していない場合はユーザーが構成することになるので、下記になるんですかね。今回の環境ではこちらは解説出来ません。
image.png

証明書の登録画面が出ます。
先ほど作成したUniFiNetworkWebServiceのテンプレートが出てきていますが、情報が不足しているので詳細の隣にある矢印をクリックして、プロパティを選択します。
image.png

証明書のプロパティインターフェースが出てくるため、必要な情報を入れていきます。
image.png
必要なサブジェクト名は下記くらいですかね。

  • 共通名(コモンネーム)
  • 国名(なくてもいいですが最低限...)

上記以外にも地域、都道府県などありますが、無くても何とかなります。
別名の欄は個別で設定を入れてもらえればいいですが、おすすめは下記の3点です。

  • DNS
  • IPアドレス(v4)
  • URL

秘密キーのタブへ移り、キーのオプションで秘密キーをエクスポート出来るようにしておきましょう。
image.png

必要な設定を入れ終わったら、「OK」をクリックし、チェックボックスにチェックを入れて「登録(E)」をクリックします。
image.png

問題なく証明書が登録されたら下図のように成功と表示されます。
「完了(F)」をクリックします。
image.png

完了をクリックしたら証明書の登録画面が消え、証明書の管理コンソールの「証明書 - ローカルコンピューター > 個人 > 証明書」の中に先ほど作った証明書がインストールされています。
image.png

証明書のエクスポート

前のステップで作成した証明書を選択し、右クリックをして「すべてのタスク(K) > エクスポート(E)」をクリックします。
image.png

証明書のエクスポートウィザードが表示されるので「次へ(N)」をクリックします。
image.png

秘密キーをエクスポートするか聞かれるので「はい」のラジオボタンをクリックして「次へ(N)」をクリックします。
image.png

エクスポートの形式を聞かれます。
選択の余地はありませんが「.PFX」で出力されるようにして「次へ(N)」をクリックします。
image.png

秘密キーを保護するためにセキュリティを選択します。
無難にパスワード入れていきます。また、暗号化方式で「TripleDES-SHA1」が選択されていますが、「AES256-SHA256」に変更して「次へ(N)」をクリックします。
image.png
一応、Wikiも調べたらTripleDESは推奨されないみたいですね。

TripleDES wiki

エクスポートする場所とファイル名が聞かれますので、適当な場所に設定します。
今回はデスクトップに「example」という名前で保存します。
設定が出来たら「次へ(N)」をクリックします。
image.png

ウィザードが完了したという画面が出たら「完了(E)」をクリックします。
image.png
「正しくエクスポートされました。」と表示されるので「OK」をクリックします。
image.png

保存された場所(今回はデスクトップ)を見るとちゃんとエクスポートされているのが確認できます。
image.png

サービス停止

注意
この操作を行うとUniFiNetworkApplicationのサービスが停止し、 Webブラウザからアクセスが出来なくなります。
無線通信には影響出ませんが留意しておいてください。

「ファイル名を指定して実行」で「services.msc」と検索してください。
image.png

サービス管理コンソールが出てくるので、UniFiNetworkApplicationを探します。
image.png

見つけたら「サービスの停止」をクリックします。
image.png

keystoreのバックアップ

KeyStore Explorerで操作をする前にバックアップを取得します。
keystoreの保存されているディレクトリに移動します。
image.png

keystoreの保存場所
keystoreは通常インストールしたUserディレクトリ内に「Ubiquiti UniFi」というディレクトリが作成され、その中に存在するため、「C:\User$user\Ubiquiti UniFi\data」 に保存されます。

私の環境では\Program Filesにサービスとしてインストールしているため、下記のディレクトリパスになります。
「C:\Program Files\Ubiquiti UniFi\data」

\Program Filesにサービスをインストールする方法は下記の記事を参照してください。

keystoreをコピーして名前を変更します。
keystore.bakでもkeystore.originでも何でもいいです。
これでバックアップも完了です。

証明書をkeystoreにインポートする

keystoreをKeyStore Explorerで開く

まずKeyStore Explorerを起動します。
image.png

「Open an exsting KeyStore」をクリックします。
image.png

ダイアログボックスが出てくるので、先ほど確認した場所のkeystoreファイルを選択して「開く」をクリックします。
※デフォルトのファイルタイプは「KeyStore File」になっているので「すべてのファイル」に変更します。
image.png

keystoreを開く際にパスワードを求められます。
UniFiNetworkApplicationのkeystoreのデフォルトパスワードは下記になります。

aircontrolenterprise

image.png

無事開けると既存のunifi証明書が保存されているのが確認できます。
image.png

既存の証明書を削除する

Entry Name「unifi」を選択し、右クリックをするとメニューが表示されます。
その中の「Delete」を選択します。
image.png

確認をされるので「はい(Y)」をクリックします。
image.png

一覧から削除されます。
image.png

keystoreに証明書をインポートする

ツールバーの「Import Key Pair」をクリックします。
image.png

Key Pair Typeを聞かれるので「PKCS #12」を選択し、「OK」をクリックします。
image.png

ファイルの場所と開封するためのパスワードを聞かれるので、作成した証明書ファイル(この記事ではexample.pfx)を選択し、パスワードを入力します。
パスワードは.PFXファイルをエクスポートするときに設定したパスワードを入力します。
入力が完了したら「Import」をクリックします。
image.png

Entry Aliasを聞かれるので、デフォルトのunifiを設定します。
image.png

新しくKey Pairのパスワードを設定することになりますが、ここはUniFiNetworkApplicationのデフォルトパスワードを設定します。

aircontrolenterprise

image.png

「OK」をクリックするとKey Pairのインポートが成功した表示が出て、一覧に証明書がインポートされます。
image.png

設定の保存

これを実施しないと設定が反映されないので注意してください。

最後に設定を保存します。
ツールバーのSaveアイコンをクリックして保存します。
image.png

サービス開始

サービスを開始します。
サービス停止と同じく「services.msc」を開いて、UniFiNetworkApplicationのサービスを開始します。
image.png

確認

最後にWebブラウザからページにアクセスして確認をします。
下記のURLをブラウザに入力してみます。

https://<任意のFQDN or IPアドレス>:8443/manage/

注意 404エラーについて
サービスを開始してすぐにアクセスすると404エラーを返されるので1分ほど待ってからアクセスしましょう。
image.png

下記の様にログイン画面が出てくればサービスの開始は正常に行われています。
image.png

下記の様に表示されていれば正常にSSL通信が実装できています。
image.png

おわりに

今回は(あまり意味はないですが)SSL通信をUniFiNetworkApplicationのサービスを例に実装してみました。
毎回Googleから

image.png

と言われるのも面倒ですからね。
もし興味がある方は実装してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?