WindowsServer2016、ドメイン機能レベルは2008R2のサーバのADに対して、外部サービスのアカウント連携でldaps(636)で接続させる要件があります
この時、WindowsServer2016のADに自己証明書を入れてldp.exeで動作確認をしていますがldaps接続が失敗します
自己証明書作成後の確認でエラーになった件で、上記ページのように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接続が出来るようにするにはどのような設定を施せばいいのでしょうか
お手数ですが、ご教示頂けますと幸いです
よろしくお願いします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/24 08:23 編集
2019/06/24 08:21
2019/06/24 08:57
2019/06/24 09:10
2019/06/24 09:23
2019/06/24 09:30
2019/06/26 02:27