この記事は過去のUPKIイニシアティブに掲載されていたものです

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[upki-odcert:59] Re: FirePass 1200 および OpenLDAP および Cisco ASA 5520 への証明書インストール方法



真鍋様
西村です。お世話になります。

返答が遅くなりましてすみません。違いましたか、残念です。

> Openldap の場合、ただ ldaps: を受けるだけなら
> slapd サーバー側には中間CA証明書は不要です。
> TLSCertificateFile、TLSCertificateKeyFileに
> サーバ証明書を指定すればいいだけのようです。

もし中間CA証明書をサーバもクライアントも知らないならば、
証明書検証が成立するはずがないと思っているのですが、どの
ような仕組みか想像できないです。切り分けのため、
$ openssl s_client -connect LDAPSサーバホスト名:ポート < /dev/null
を実行いただき、以下のように出力された部分をお教えいただけ
ないでしょうか?
> ---
> Certificate chain
> 0 s:/C=JP/L=Academe2/O=.../CN=....ac.jp
>  i:/C=JP/L=Academe2/O=National Institute of Informatics/OU=UPKI/OU=NII Open Domain CA - G2
> 1 s:/C=JP/L=Academe2/O=National Institute of Informatics/OU=UPKI/OU=NII Open Domain CA - G2
>  i:/C=JP/O=SECOM Trust.net/OU=Security Communication RootCA1
> ---
このコマンドの詳細については以下にも記述があります。
https://upki-portal.nii.ac.jp/ml-archives/upki-odcert/msg00024.html

> (slapdをldapsで起動するための手続きは必要ですが)

どうもありがとうございます。/etc/sysconfig/ldapの
SLAPD_LDAPS=no
を
SLAPD_LDAPS=yes
に変更するものと理解しました。

> TLSCACertificateFile もクライアントの認証を
> 行うときに使うのかもしれませんが、経験がありません。

はい、TLSCACertificateFileについてはSSLクライアント認証
時に、受け付ける証明書の発行者(認証局)を記述するための
もので間違いないと思います。


(2010/11/12 9:18), xxxxxx@xxxxxxxxxxxxx wrote:
> 西村様
> 
> 有難うございました。
> 
> 
>> 参考まで、OpenSSLの場合のslapd.confで中間CA証明書(nii-odca2.crt)
>> をどのように設定しているか、また他に変更点がございましたら
>> お教えいただけましたら追記させていただきたいと思います。
> 
> 失礼いたしました。こちらの環境は
> Red Hat Enterprise Linux Server release 5.5
> 其れに含まれる openssl 0.9.8e です。
> 
> Openldap の場合、ただ ldaps: を受けるだけなら
> slapd サーバー側には中間CA証明書は不要です。
> TLSCertificateFile、TLSCertificateKeyFileに
> サーバ証明書を指定すればいいだけのようです。
> (slapdをldapsで起動するための手続きは必要ですが)
> 
> 一方クライアント側には CA証明書が必要で ldapsearch 等を行う場合
> TLS_CACERT で 指定するファイルに つかうCA証明書を
> (アクセスする複数のldap サーバーがそれぞれ別のCAでサインされる
> 証明書を持つ場合)順不同で結合すればよいです。
> 証明書チェーンがある場合、中間証明書も含むすべての証明書が
> 必要とマニアルにはかかれているようにみえましたが、実際やってみると
>   root 証明書のみが必要で中間CA証明書は不要でした。
> NIIの証明書の場合 SECOM のルートCA SCRoot1ca.cer が必要です。 
> 一方 TLS_CACERTDIR を使う場合は注意が必要で、
> 証明書ファイルの実体だけでなく、 OpenSSL の c_rehash でシンボリックリン
> クが必要です。(man ldap.conf(5) に記述がないので注意 )
> 
> ところで、
> slapd 側の CA証明書 TLSCACertificateFile の用途について
> 私はよくわかりません。 従って 中間CA証明書をどうやって
> つかうかなどもよくわかりません。
> サーバー側でCA証明書は なんに使うのでしょう。
> database backend LDAPや referal? に使うと思っていたのですが
> そうでもないようなので、???です。
> 私も西村さんのおっしゃるように
> TLSVerifyClient を try または demand にしてみたのですが、
> こんどは前々接続できなくなってしまい、
> これはクライアント認証用で
> 後ろにいる 第2のldapサーバーの認証にはつかわれないようです。
> TLSCACertificateFile もクライアントの認証を
> 行うときに使うのかもしれませんが、経験がありません。
> また全然勘違いしてるのかもしれません。
> 
>> あと確認ですが、後ろのldapsサーバーはプライベート証明書を
>> 使用しているのでしょうか?パブリックなものであれば、
>> TLSCACertificateFile無指定の場合にデフォルトのca-bundle.crt
>> が参照されている可能性もあるかと思いましたので。
> 試した時は 後ろのldapサーバーは確かに NIIの証明書だったのですが、
> 直接ldapsearch でつなぎにいったときもdefault では つながらなかったので、
> ca-bundle.crt をみにいってるとは考えにくい気がしてます。
> slapd のほうは見に行くのかもしれませんが・・ 
> 今度 おれおれ証明書でテストしてみます。
> 
> 
> 真鍋
> 
> Takeshi NISHIMURA<xxxxxxx@xxxxxxxxx>さん:
>> KEK真鍋様
>> 西村です。よろしくお願いします。
>>
>> ご指摘ありがとうございます。
>> 昔の記憶をたどりながら書いていますが、確かに「なんでこんな
>> 仕様なんだろう」と思いました。
>> 原因はUbuntuのOpenLDAPがGnuTLSライブラリにリンクしているためで、
>> OpenSSLにリンクしている場合と書き方が大きく異なります。
>> 「証明書ファイルの改行はLFのみ」もGnuTLSに限った話だったと思
>> います。「GnuTLSにリンクしている場合こう書かないと正しく動作
>> しない」というのが正確なところです。
>>
>> 参考まで、OpenSSLの場合のslapd.confで中間CA証明書(nii-odca2.crt)
>> をどのように設定しているか、また他に変更点がございましたら
>> お教えいただけましたら追記させていただきたいと思います。
>>
>>> database のバックエンドDBを ldap にして
>>> 他の ldapsサーバーに reverse proxy する場合
>>> slapd.conf の TLSCACertificateFileが必要だと
>>> おもっていたのですが、 どうしても
>>> 他のldapサーバーの証明書をちゃんとチェックしてくれません。
>>> (TLSCACertificateFile がなくても 問題なく動作してしまう)
>>
>> 完全にあてずっぽうですが、TLSVerifyClientをtryにしても
>> 同じ状況でしょうか?
>> あと確認ですが、後ろのldapsサーバーはプライベート証明書を
>> 使用しているのでしょうか?パブリックなものであれば、
>> TLSCACertificateFile無指定の場合にデフォルトのca-bundle.crt
>> が参照されている可能性もあるかと思いましたので。
>>
>>
>> (2010/11/11 13:48), xxxxxx@xxxxxxxxxxxxx wrote:
>>> KEK の真鍋です。 こちらは初めてです。よろしくお願いいたします。
>>>
>>>
>>>
>>> OpenLDAPの記述について 質問させてください
>>>
>>>> TLSCertificateFile /etc/ssl/certs/server-chain.crt
>>>> server-chain.crtの作成:
>>>>
>>>> 改行はLFのみでなければならない。
>>>>
>>>> ダウンロードしたサーバ証明書は大丈夫 nii-odca2.crtはCRLF ルートもOK
> サ
>>>> ーバ証明書→nii-odca2.crt→ルートの順に格納 ルートは
>>>> /etc/ssl/certs/Security_Communication_Root_CA.pem
>>>> にある
>>>
>>> と書かれてありますが、これは server-chain.crt に 
>>> 一連のサーバ証明書→nii-odca2.crt→ルートの
>>> 証明書チェーンを結合(cat)して(収納せよとの
>>> 意味でしょうか?
>>>
>>> TLSCertificateFile には ldapサーバーのサーバー証明書だけを収納し、
>>> ldap クライアント側の TLS_CACERT に SECOM のルート証明書を
>>> おけばよいようにおもうのですが。。
>>> 一連の証明書を置かなければいけない場合はどういう場合でしょうか?
>>>
>>> なお、クライアント側の TLS_CACERT ファイルでは、複数のCAが
>>> 必要な場合は、結合する必要があるのですが、特に結合する順番は
>>> 気にしないと思います。 また、中間証明書も不要で ルートさえあれば
>>> うまくできるようでした。
>>>
>>> さらに
>>> 関連の質問をさせてください。
>>>
>>> database のバックエンドDBを ldap にして
>>> 他の ldapsサーバーに reverse proxy する場合
>>> slapd.conf の TLSCACertificateFileが必要だと
>>> おもっていたのですが、 どうしても
>>> 他のldapサーバーの証明書をちゃんとチェックしてくれません。
>>> (TLSCACertificateFile がなくても 問題なく動作してしまう)
>>> この場合にも証明書をきちんとチェックしてくれるようにするには
>>> どうすればよいかご存知のかたいらっしゃいましたら
>>> ご教授をお願いします。
>>>
>>>
>>> よろしくお願いします。
>>>
>>>
>>>
>>>
>>>> NIIの西村です。
>>>>
>>>> サーバ証明書のインストール事例につきまして、FirePass 1200
>>>> およびOpenLDAP、Cisco ASA 5520へのインストール方法を事例集
>>>> に掲載しましたのでお知らせします。
>>>>
>>>> お役に立ちましたら幸いです。
>>>>
>>>> FirePass 1200
>>>> https://upki-portal.nii.ac.jp/docs/odcert/report#comment-33
>>>>
>>>> OpenLDAP
>>>> https://upki-portal.nii.ac.jp/docs/odcert/report#comment-34
>>>>
>>>> Cisco ASA 5520
>>>> https://upki-portal.nii.ac.jp/docs/odcert/report
>>>> (表の一番下に少しだけコメントを書いています)

-- 
西村健
国立情報学研究所 TEL:03-4212-2720