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

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

ただいまの
回答率

90.12%

Microsoft Active Directory LDAPS対応について

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 428

no_secure

score 5

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接続が出来るようにするにはどのような設定を施せばいいのでしょうか

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

よろしくお願いします

イメージ説明

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/24 18:23

    検証用としてのADサーバでして、
    マスタ側からレプリケーションされているとの事です(ADサーバ自体は私以外の情シス担当が管理している)
    まずは、レプリケーション受ける側(普段は使用していない)のサーバで検証していました
    エンタープライズ設定するのにadmin権限のユーザがいるようでして、パスワード情報など不明でしたので
    一旦、スタンドアロンで作成しています

    再度、「Active Directory 証明書サービス」設定をやり直したいと思いまして
    アンインストールについて質問をしました

    よろしくお願い致します

    キャンセル

  • 2019/06/24 18:30

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

    キャンセル

  • 2019/06/26 11: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

    ご回答ありがとうございました

    キャンセル

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

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる