Active DirectoryのLDAPS接続を自己証明書で設定する

こんにちは。サイオステクノロジーの小川です。
今回は、自己証明書でActive DirectoryでLDAPS接続を行う設定方法を紹介します。
サードパーティが発行する証明書での設定方法についてはこちらを参照下さい。

証明書の作成

今回自己証明書はOpensslを利用して作成します。

秘密鍵の作成

# openssl genrsa 2048 > server.key

証明書署名要求の作成
証明書のCommon NameはActive DirectoryのサーバFQDNを入力します。

# openssl req -new -key server.key > server.csr

Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []: ad.example.com
Email Address []:

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

サーバ証明書の作成
今回は有効期限10年で作成します。

# openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt

subject=C = JP, L = Default City, O = Default Company Ltd, CN = ad.example.com
Getting Private key

pfxファイルのエクスポート

# openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx

Enter Export Password:xxxxxxxx
Verifying - Enter Export Password:xxxxxxxx

証明書のインポート

証明書の作成で作成したpfxとcrtの証明書ファイルを対象のADの適当なディレクトリに配置します(ここではC:\certsとします。)
スタートボタンから「ファイル名を指定して実行」でcertlm.mscを入力し、証明書管理ツールを開きます。

証明書管理ツールを開いたら個人の証明書でpfxファイルをインポートします。

証明書のインポートウィザードが開くので「次へ」を選択します。

インポートするpfxファイルを選択します。

pfxファイルのパスワードを入力して「次へ」を選択します。

証明書を配置する証明書をストアが「個人」であることを確認し、次へを選択します。

インポート完了画面で「完了」を選択します。

問題なくインポートされると、下記ウィンドウが表示されます。

個人ストアに自己証明書の公開鍵と秘密鍵がインポートされます。

自己証明書の信頼

次に、自己証明書を信頼します。信頼されたルート証明機関に証明書をインポートします。(「信頼されたユーザー」に証明書をインポートしても自己証明書を信頼することが可能です。その場合は以下の信頼されたルート証明機関を信頼されたユーザーに読み替えてください。)

証明書のインポートウィザードが開くので「次へ」を選択します。

インポートするcrtファイルを選択し、「次へ」を選択します。

証明書を配置する証明書をストアが「信頼されたルート証明機関」であることを確認し、次へを選択します。

インポート完了画面で「完了」を選択します。

信頼されたルート証明書機関ストアに自己証明書の公開鍵がインポートされます。

LDAPS接続確認

スタートボタンから「ファイル名を指定して実行」でldp.exeを入力し、LDAPクライアントツールを開きます。

接続でADのFQDNとポート番号を入力し、SSLにチェックをいれ、OKを選択します。

LDAPS接続が問題なくできていることが確認できます。

外部からのLDAPS接続

Linux

LinuxサーバからLDAPS接続できることを確認します。
OpenLDAP-clientsのldapsearchコマンドで接続します。

# ldapsearch -x -H ldaps://ad.example.com:636 -D "CN=admin,CN=Users,DC=example,dc=com" -W -b "OU=people,DC=example,DC=com" "cn=testuser1" displayName
Enter LDAP Password:xxxxxxxx

# extended LDIF
#
# LDAPv3
# base <OU=people,DC=example,DC=com> with scope subtree
# filter: cn=testuser1
# requesting: displayName
#

# testuser1, people, example.com
dn: CN=testuser1,OU=people,DC=example,DC=com
displayName: test user1

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

LDAPSで接続できました!

Windows Server

ADにドメイン参加したWindows ServerからADにLDAPS接続できることを確認します。
何もせずにldp.exeでLDAPS接続を確認すると、接続に失敗します。

外部のWindows ServerからADにLDAPS接続する際には対象のクライアントで接続するADの証明書を信頼している必要があります。
なので、Windows Serverで自己証明書を信頼するルート証明機関にインポートします。(「自己証明書の信頼」を参照)

再度LDAPS接続の確認をします。

接続できました!

 

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です