こんにちは。サイオステクノロジーの小川です。
今回は、自己証明書で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接続の確認をします。
接続できました!