モグラ先生:やぁやぁ、地下 IT ラボへようこそ!今日は 「LibreChat を Raspberry Pi&Docker Compose に載せ、Active Directory と LDAPS で認証しようとしたら証明書でコケた話」 を掘り下げるよ。
掘って見つけた落とし穴と脱出ルート、一緒にチェックだ ⛏️🐾
🎬 今回掘るテーマ:Windows Server 2025のADへLDAP接続の問題
ある日のこと。
LibreChat + Raspberry Pi + Docker Compose で Windows Server 2025のADへLDAP接続が出来なくなっており、LDAPS接続に切り替えてみましたが・・・動かない。
モグラ先生と一緒に、坑道の奥まで潜って原因と対策を発掘してきたぞ!
1️⃣ 症状トレース:どんな穴に落ちた?
- 環境
- LibreChat v0.7.x(Docker Compose)
- Raspberry Pi (64bit OS)
- Windows Server 2025 を LDAPS (636/tcp) で利用
- 発生ログ
Error: unable to verify the first certificate at TLSSocket.onConnectSecure …
- openssl 診断
openssl s_client -connect XX.XX.XX.XX:636 -showcerts
結果 ➡️Verify return code: 21 (unable to verify the first certificate)
モグラ先生:証明書チェーンを信頼できない のが原因だね。でも「自己署名でもいいから検証スキップしたい」って時もあるよね?そんなときはどうする?🧐
小さな穴掘りポイント
モグラ先生:
openssl s_client
は TLS 掘削の必需品!Verify return code
が 0 以外なら「うさんくさい証明書!」と Node.js に突っぱねられるよ。
2️⃣ 試したこと:LibraChatの.envファイルを色々変えてみました。
試行 | 環境変数 | 結果 |
---|---|---|
A | LDAP_TLS_REJECT_UNAUTHORIZED=false | 効かず😢 |
B | LDAP_REJECT_UNAUTHORIZED=true/false | 効かず😢 |
C | LDAP_CA_CERT_PATH= に空 / チェーンを指定 | 依然エラー😢 |
モグラ先生:公式の情報が間違えているのか、何をしても設定されないよ。🕳️
3️⃣ 無理やり変更💣:NODE_TLS_REJECT_UNAUTHORIZED=0
結論:
LibreChat の API コンテナ にservices: api: environment: - NODE_TLS_REJECT_UNAUTHORIZED=0
を入れて再起動すると、TLS 検証が完全 OFF ➡️ 接続成功🎉
# docker-compose.yml 例(抜粋)
services:
api:
image: ghcr.io/danny-avila/librechat:latest
environment:
- NODE_TLS_REJECT_UNAUTHORIZED=0
# 他の設定 …
再起動👇
docker compose down
docker compose up -d
ログ👇
LDAP TLS connection established (rejectUnauthorized: false)
モグラ先生:まさに強制突破!でもこれは “仮設足場” だよ。
本番トンネルに使うなら、次の章を要チェック⚠️
小さな穴掘りポイント
モグラ先生:
NODE_TLS_REJECT_UNAUTHORIZED=0
は Node.js 全体 の検証を殺す。
インターネットに面した本番で使うのは NG。社内テスト限定にしよう!
最後にひと言
モグラ先生:「掘って見つけた!」 落とし穴は、原因をメモしておくと次回の掘削がラクになるよ。
この記事が同じエラーでモグモグ悩む皆さんの道標になればうれしいな 🐾
_