質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

1回答

3576閲覧

Microsoft Active Directory LDAPS対応について

no_secure

総合スコア15

LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2019/06/20 12:08

編集2019/06/24 08:57

WindowsServer2016、ドメイン機能レベルは2008R2のサーバのADに対して、外部サービスのアカウント連携でldaps(636)で接続させる要件があります

この時、WindowsServer2016のADに自己証明書を入れてldp.exeで動作確認をしていますがldaps接続が失敗します

■自己証明書作成方法
https://social.technet.microsoft.com/Forums/ie/ja-JP/3ffdb0ae-95b6-452e-8359-989569b0c5e4/ldaps2999235388261262636012395123881235612390?forum=activedirectoryja

自己証明書作成後の確認でエラーになった件で、上記ページのようにSAN(Subject Alternative Name)の設定が不足しているとの事ですので

下記コマンドで秘密鍵と証明書を作成し、PKCS#12に変換しています

openssl req \ -new \ -newkey rsa:2048 \ -days 3650 \ -sha256 \ -nodes \ -x509 \ -subj "/CN=aaa.test.co.jp" \ -extensions SAN \ -config <( cat /etc/pki/tls/openssl.cnf <(printf "[SAN]\nextendedKeyUsage=1.3.6.1.5.5.7.3.1\nsubjectAltName=\ 'DNS:DNS01.aaa.test.co.jp,\ DNS:DNS02.aaa.test.co.jp,\ DNS:**.**.**.**,\ DNS:**.**.**.**'\ ")) \ -keyout ldapserver.pem \ -out ldapserver.crt

PKCS#12への変換コマンド

openssl pkcs12 -export -inkey ldapserver.pem -in ldapserver.crt -out ldapserver.p12

■証明書配置方法
1.

MMCを起動し、 出てきた画面(コンソール1)で「ファイル」→「スナップインの追加と削除」 を選択。 「スナップインの追加と削除」画面の「利用できるスナップイン」 のリストから「証明書」して「追加」をクリック 「証明書スナップイン」の画面で「コンピュータアカウント」を選択 「次へ」クリック 「ローカルコンピュータ」が選択されていることを確認の上「完了」をクリック 「スナップインの追加と削除」画面に戻るので「OK」をクリック 「コンソール1」に戻るので、画面左の「証明書(ローカルコンピュータ)」 を開く 開いたところの「信頼されたルート証明機関」を右クリックして「すべての タスク」を選択して「インポート」を選択。 これで openssl で作った証明書ファイル(上記例だと ldapserver.crt)をウィザードに従いインポート。 今度は「個人」を右クリックして「すべてのタスク」を選択して「インポート」を選択。 ここで openssl で作った pkcs12 ファイル(上記例だと ldapserver.p12)をウィザードに従いインポート。 ドメインコントローラマシンを再起動実行

2.
1の方法で証明書インポートしましたがldp.exe確認でエラーとなりましたので別方法で対応

https://rms.ne.jp/howto/install/install_directory-ldap-2012.html 上記サイトのように「証明書スナップイン」で「サービスアカウント」を選択します
MMCコンソールを開き 「スナップインの追加と削除」ウィンドウで、「利用できるスナップイン」から「証明書」を選択し「追加」をクリック 「証明書スナップイン」で「サービスアカウント」を選択し「次へ」をクリック 「コンピューターの選択」で「ローカルコンピューター(L):(このコンソールを実行しているコンピューター)」を選択し「次へ」をクリック 「証明書スナップイン」で「Active Directory Domain Services」を選択し「完了」をクリック 「スナップインの追加と削除」ウィンドウで「OK」をクリック 「MMC コンソール」で「コンソール ルート」「証明書 - ローカルコンピュータ上の.....」「NTDS\個人」「すべてのタスク」と展開し「インポート」を選択 「証明書のインポート ウィザード」「証明書のインポート ウィザードの開始」で「次へ」をクリック 「証明書のインポート ウィザード」でldapserver.p12のpfxファイルを指定 「証明書ストア」で以下を行います。 「証明書をすべて次のストアに配置する」を選択し、「参照」をクリックします。 「証明書ストアの選択」で「個人」を選択し、「OK」をクリックします。 「証明書ストア」に戻ったら「個人」が反映されていることを確認し「次へ」をクリックします。 「証明書のインポート ウィザードの完了」で設定内容を確認し「完了」をクリックします。 これでドメインコントローラマシンを再起動実行

■ldaps接続確認方法

ADサーバで下記実行し、636ポート起動確認

netstat -na | find ":636" TCP 0.0.0.0:636 0.0.0.0:0 LISTENING

接続失敗ログ

ld = ldap_sslinit("localhost", 636, 1); Error 0 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3); Error 81 = ldap_connect(hLdap, NULL); Server error: <empty> Error <0x51>: Fail to connect to localhost.

証明書作成で問題があるのかと思いまして下記のようにも証明書作成しまして、ADに食わせ
ldp.exe実行してもldaps接続でエラーとなります

openssl req -new -newkey rsa:4096 -keyout server.key -nodes -x509 -days 3650 -out server.crt \ -extensions SAN -reqexts SAN -config <(cat /etc/pki/tls/openssl.cnf \ <(printf "[SAN]\n subjectAltName=DNS:dns01.aaa.test.co.jp,DNS:dns02.aaa.test.co.jp,IP:**.**.**.**,IP:**.**.**.**"))

また、DC上にAD CSをインストールすれば自動的に利用できるようになるとの情報もありましたので
証明機関もインストールしてみまして、
ldp.exe確認するも、ldaps接続エラーとなりました。

いろいろ思考錯誤していますが、どのような対応で接続確立が出来るのは全くわかりません。
ADサーバに証明書を配置してldaps接続が出来るようにするにはどのような設定を施せばいいのでしょうか

お手数ですが、ご教示頂けますと幸いです

よろしくお願いします

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一番簡単な方法は「Active Directory 証明書サービス」をインストールしてエンタープライズCAを構築することです。
こちらをすることで、ADサーバ証明書を自動で発行してくれ、かつドメイン参加端末は該当証明書発行元を「信頼済みルート証明機関」として評価してくれます。

検証環境で確認してみましたが、上記作業後にドメインコントローラの再起動を実施することで、ADサーバ証明書が作成され、ldp.exeで636ポート指定で接続できることを確認しました。

1点、「Active Directory 証明書サービス」のエンタープライズCAは扱いが難しい(インストールした場合、安易にアンインストールできない)等の制約があるため取り扱い注意です。

投稿2019/06/24 06:25

over

総合スコア4309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

no_secure

2019/06/24 08:23 編集

ご回答ありがとうございます ■追記 ----------------------------------------------------------------- 「Active Directory 証明書サービス」のスタンドアロンCAを作成し ldp.exeで636ポート接続が出来ました 「Active Directory 証明書サービス」で作成した証明書ファイルを外部のサービス側に格納して 636で接続出来るかを確認中です ----------------------------------------------------------------- 権限か何かの都合でエンタープライズCAは選択出来ませんでした。 スタンドアローンでCAを構築しました ですが、信頼済みルート証明機関には現在作成したルートCA証明機関のCAファイルが作成されており、 ADDSサービス再起動後に、ldp.exe実行しましたが636ポート接続が出来ない状態です 別サーバでopensslコマンドで作成した証明書ファイルとpfxファイルを スナップイン追加と削除の項目に食わせることは不要でいいのでしょうか よろしくお願い致します
over

2019/06/24 08:21

> エンタープライズCAは選択出来ませんでした。 先にスタンドアロンCAを構築してしまったからではないでしょうか? >ですが、信頼済みルート証明機関には現在作成したルートCA証明機関のCAファイルが作成されており、 > ADDSサービス再起動後に、ldp.exe実行しましたが636ポート接続が出来ない状態です 回答にも記載している「ADサーバ証明書」がないからだと思います。 スタンドアロンCAは証明局の作成のみでADサーバに紐づけた証明書の自動生成は行いません。 ldapsで接続する条件は以下です。 ・ADサーバ証明書 ・ADサーバ証明書を発行した証明局が信頼されている状態 エンタープライズCAであれば上記を宜しく処理してくれます。 > 別サーバでopensslコマンドで作成した証明書ファイルとpfxファイルを > スナップイン追加と削除の項目に食わせることは不要でいいのでしょうか 上記をどのような意図をもって実施したかが私には読み解けませんので、明確なご回答差し上げることができません。 OpenSSLによる証明局構築/証明書発行であれば、以下の流れになると思います。 1) OpenSSLで証明局の作成 2) OpenSSLでADサーバのCSR(証明書署名要求)の作成 3) OpenSSL 1)証明局で2)CSRの署名を行う 4) ADサーバに3)で生成された証明書を適用 5) ldaps接続を行うマシンの「信頼済みルート機関」に1)を登録 注意)ldaps接続を行うマシンは、証明書の正当性を評価する目的で、証明局に問い合わせを行います。 従いまして、該当マシン間はTCP/IP通信ができることが前提となります。 上記で意味が伝わらない場合、PKI基盤の勉強をされた方が良いと思います。 1から全て回答することは難しいです。
no_secure

2019/06/24 08:57

ありがとうございます ----------------------------------------------------------------- 別のサーバで「Active Directory 証明書サービス」のスタンドアロンCAを作成し ldp.exeで636ポート接続が出来ました 「Active Directory 証明書サービス」で作成した証明書ファイルを外部のサービス側に格納して 636で接続出来るかを確認中です スタンドアロンとエンタープライズとで、どのような差異があるのかは分かっていませんが 一旦、スタンドアローン状態で確認します あと、追加で質問させてください 別のサーバで「Active Directory 証明書サービス」を入れています このサービスをアンインストールする時、「役割と機能の削除」から画面遷移した 質問欄に画像貼り付けますような、画面の管理ツールを削除するのチェックボックスを外すことでいいでしょうか (サービス機能自体は残しておき、サービスからアンインストールを行いたいです) よろしくお願い致します
over

2019/06/24 09:10

> 別のサーバで「Active Directory 証明書サービス」を入れています これは何目的でインストールしているものですか?またエンタープライズCAでroot caですか? 回答にも記載していますが、AD証明書サービスは取り扱い注意です。 安易に削除できないし、運よく削除できた場合においても今まで機能していたADサービスが使えなくなる可能性があります。
no_secure

2019/06/24 09:23

検証用としてのADサーバでして、 マスタ側からレプリケーションされているとの事です(ADサーバ自体は私以外の情シス担当が管理している) まずは、レプリケーション受ける側(普段は使用していない)のサーバで検証していました エンタープライズ設定するのにadmin権限のユーザがいるようでして、パスワード情報など不明でしたので 一旦、スタンドアロンで作成しています 再度、「Active Directory 証明書サービス」設定をやり直したいと思いまして アンインストールについて質問をしました よろしくお願い致します
over

2019/06/24 09:30

> 検証用としてのADサーバでして 「マスタ側」は運用で使用しているADを指していますか? そうであれば、検証用のADサーバの情報もレプリケーション対象です。 AD証明書サービス、エンタープライズCA構成だった場合、この情報をADに格納します。 従って安易には削除できないと想定されます。 私の経験上であれば、「機能の削除」の途中でエラーを吐いてアンインストールが中止された記憶があります。 削除できたとしても以降のAD運用は危うげですね。 もし運用で使用されているサーバであれば、正式なWindowsサポートを受けた方が良いと思います。
no_secure

2019/06/26 02:27

エンタープライズCAで証明書作成し、コンピュータアカウント選択した証明書の個人にドメイン コントローラーの認証を登録しました ldp.exeで636ポート接続確認出来、外部サービスからADサーバにLDAPS接続が出来ました スレーブ側のADサーバでもエンタープライズCA作成しています この状態でレプリされる事でどのような影響が出るのかは、様子見とします 参考となったサイト https://cg-support.isr.co.jp/hc/ja/articles/360008784954-Windows-Server-2012-R2-Standard-Edition-2016-Datacenter-Edition ご回答ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問