どうもミツシマです。
今回はActive Directoryサーバー(DC)のLDAPSを有効化する方法に関して検証してみました。
通常であればLDAPS通信を有効化する為にCAが必要なのですが、今回はCAを構築せず、Powershellコマンドを用いたオレオレ証明書でLDAPSを有効化する手順を検証してみました。
検証OS:Windows Server 2016
今回はActive Directoryサーバー(DC)のLDAPSを有効化する方法に関して検証してみました。
通常であればLDAPS通信を有効化する為にCAが必要なのですが、今回はCAを構築せず、Powershellコマンドを用いたオレオレ証明書でLDAPSを有効化する手順を検証してみました。
検証OS:Windows Server 2016
〜検証〜
全体的な手順としては- Powershellコマンドでサーバー証明書を生成する
- 「生成したサーバー証明書」と「ルート証明書」をエクスポートする
- 「生成したサーバー証明書」を所定の場所にインポートする
- 「ルート証明書」をインストールする
こんな感じです。
まずはPowershellコマンドで証明書を作成していきます。

本当はルートCA証明書も手動で作成したほうがいいのかもしれませんが、
面倒なので「-TestRoot」でやっちゃってます。。。(^_^;)
次に各証明書をエクスポートします。
「ファイル名を指定して実行」から「mmc」を実行します。
「証明書(ローカルコンピューター)」をスナップインとして追加します。

「個人」の中に先程生成したサーバー証明書があるので、右クリックより「エクスポート」します。


当たり前ですが秘密キーもエクスポートします。





同様にルートCA証明書もエクスポートします。
こちらは「中間証明機関」の中にあります。






これで「サーバー証明書」と「ルートCA証明書」のエクスポートが完了です。
続いて「サーバー証明書」を所定の位置にインポートします。
今度はスナップインの追加にて「サービスアカウント」-「Active Directory Domain Services」を選択します。



証明書「NTDS¥個人」に「サーバー証明書」をインポートします。






これで証明書のインポートが完了しました!

続いて「ルートCA証明書」をインストールしていきます。
※今回はLDAPS通信を自分自身のサーバーに対してテストしてますので、同一サーバーに「ルートCA証明書」をインストールしていますが、別サーバーからLDAPS通信をする場合には別サーバーにインストールが必要です!!当たり前ですが(ー_ー)!!




インストール完了です!!
すべての準備が整ったのでLDAPS通信テストをしてみたいと思います。
ツールとしては「ldp.exe」というツールを使用していきます。
※このツールはAD DSサービスがインストールされたサーバーであれば、標準で持っているツールです。
「ファイル名を指定して実行」から呼び出せます。




特にエラーなく通信出来ていることが確認出来ます!
(注)設定不備や通信不備があると下記のようなエラーで接続が出来ません。

こんなところで今回の検証は終了したいと思います(^o^)
LDAP通信自体は暗号化されていないので、LDAPSの方がセキュリティ上好ましいのかもしれませんが、
この為だけにCAを構築するのはハードル高いですよね。。。(^_^;)
単純にLDAPS通信だけしたいのであればこれでいいかもしれませんね。
まずはPowershellコマンドで証明書を作成していきます。
#FQDNの取得
$wmiobj = Get-WmiObject win32_ComputerSystem
$strFQDN = $wmiobj.Name + "." + $wmiobj.Domain
#サーバー証明書作成
New-SelfSignedCertificate -Subject $strFQDN -DnsName $strFQDN -CertStoreLocation "cert:\Localmachine\My" -HashAlgorithm sha256 -KeyAlgorithm RSA -KeyLength 2048 -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(10) -TestRoot
$wmiobj = Get-WmiObject win32_ComputerSystem
$strFQDN = $wmiobj.Name + "." + $wmiobj.Domain
#サーバー証明書作成
New-SelfSignedCertificate -Subject $strFQDN -DnsName $strFQDN -CertStoreLocation "cert:\Localmachine\My" -HashAlgorithm sha256 -KeyAlgorithm RSA -KeyLength 2048 -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(10) -TestRoot

本当はルートCA証明書も手動で作成したほうがいいのかもしれませんが、
面倒なので「-TestRoot」でやっちゃってます。。。(^_^;)
次に各証明書をエクスポートします。
「ファイル名を指定して実行」から「mmc」を実行します。
「証明書(ローカルコンピューター)」をスナップインとして追加します。

「個人」の中に先程生成したサーバー証明書があるので、右クリックより「エクスポート」します。


当たり前ですが秘密キーもエクスポートします。





同様にルートCA証明書もエクスポートします。
こちらは「中間証明機関」の中にあります。






これで「サーバー証明書」と「ルートCA証明書」のエクスポートが完了です。
続いて「サーバー証明書」を所定の位置にインポートします。
今度はスナップインの追加にて「サービスアカウント」-「Active Directory Domain Services」を選択します。



証明書「NTDS¥個人」に「サーバー証明書」をインポートします。






これで証明書のインポートが完了しました!

続いて「ルートCA証明書」をインストールしていきます。
※今回はLDAPS通信を自分自身のサーバーに対してテストしてますので、同一サーバーに「ルートCA証明書」をインストールしていますが、別サーバーからLDAPS通信をする場合には別サーバーにインストールが必要です!!当たり前ですが(ー_ー)!!




インストール完了です!!
すべての準備が整ったのでLDAPS通信テストをしてみたいと思います。
ツールとしては「ldp.exe」というツールを使用していきます。
※このツールはAD DSサービスがインストールされたサーバーであれば、標準で持っているツールです。
「ファイル名を指定して実行」から呼び出せます。




特にエラーなく通信出来ていることが確認出来ます!
(注)設定不備や通信不備があると下記のようなエラーで接続が出来ません。

こんなところで今回の検証は終了したいと思います(^o^)
LDAP通信自体は暗号化されていないので、LDAPSの方がセキュリティ上好ましいのかもしれませんが、
この為だけにCAを構築するのはハードル高いですよね。。。(^_^;)
単純にLDAPS通信だけしたいのであればこれでいいかもしれませんね。
スポンサードリンク
コメント