<!--
<SECT1 ID="ssl"><TITLE>SSL/TLS and SSL/TLS wrappers for LDAP</TITLE>
-->
<SECT1 ID="ssl"><TITLE>SSL/TLS と、SSL/TLS の LDAP 用ラッパ</TITLE>

<!--
<SECT2><TITLE>A Brief description of SSL</TITLE>
-->
<SECT2><TITLE>SSL の簡単な説明</TITLE>

<!--
<PARA>The Secure Socket Layer (SSL) is an application layer protocol that
provides a secure transmission channel between parties. It stands between
TCP/IP and application level protocols, such as HTTP, LDAP, SMTP etc... It is
based on public key cryptography systems (various ciphers can be used) and on
X.509 certificates.</PARA> 
-->
<PARA>Secure Socket Layer (SSL) はパーティ間のセキュアな
転送経路を提供するアプリケーションレイヤプロトコルです。
HTTP, LDAP, SMTP 等々のアプリケーションレベルのプロトコルと
TCP/IP との間をとりもつ<!-- stand between -->もので、
公開鍵暗号システム (種々の暗号化方法<!-- ciphers -->が利用可能) と
X.509 証明方式に基づいています。
</PARA>

<!--
<PARA>SSL was initially a Netscape protocol, then it has gone trough a
standardization process and now is called TLS (Transmission Layer Security).
It is commonly referred as SSL/TLS.</PARA>
-->
<PARA>SSL はもともと Netscape のプロトコルでしたが、
徐々に標準的なものとなり<!-- through a standardization process -->、
今では TLS (Transmission Layer Security) と呼ばれるものになりました。
一般的に SSL/TLS として言及されます<!-- referred as = と呼ばれる？ -->。
</PARA>

<!--
<PARA>The SSL/TLS protocol provides: </PARA>
-->
<PARA>SSL/TLS プロトコルは以下の機能を提供します。
</PARA>

<itemizedlist> 

<!--
<listitem><PARA>Data encryption: Client/server session is
encrypted</PARA></listitem>
-->
<listitem><PARA>データの暗号化 ― クライアント／サーバ間の
セッションが暗号化されます。
</PARA></listitem>

<!--
<listitem><PARA>Server authentication: Client can verify the server
identity</PARA></listitem>
-->
<listitem><PARA>サーバ認証 ― クライアント側から、サーバが
本物かどうかを検証することができます。
</PARA></listitem>

<!--
<listitem><PARA>Message integrity: Data is not modified during transmission;
this prevents "man in the middle" attacks.</PARA></listitem>
-->
<listitem><PARA>メッセージ完全性 ― データは転送中に手を加えられません。
これは「man in the middle」攻撃<FOOTNOTE><PARA>訳注：送信者に
なりすました第三者がデータを改竄するなど。「中間介入」とも訳すそうです。
</PARA></FOOTNOTE>を防止します。

</PARA></listitem>

<!--
<listitem><PARA>Client authentication: Server can verify the client
identity</PARA></listitem>
-->
<listitem><PARA>クライアント認証 ― サーバはクライアントが
本物かどうか検証できます。
</PARA></listitem>

</itemizedlist> 

</SECT2>

<!--
<SECT2><TITLE>SSL/TLS availability for OpenLDAP </TITLE>
-->
<SECT2><TITLE>OpenLDAP の SSL/TLS サポート</TITLE>

<!--
<PARA> Since OpenLDAP 2.0.x, that is an LDAP V3 toolkit, SSL/TLS is provided by
the server. OpenLDAP 2.0.x needs to be compiled using the OpenSSL library to
add SSL/TLS. It also has Start-TLS support.</PARA>
-->
<PARA>LDAP V3 のツールキットである OpenLDAP 2.0.x からは、
サーバによって SSL/TLS サポートが備えられています。
ただし SSL/TLS を追加するためには、OpenLDAP 2.0.x が OpenSSL
のライブラリを使ってコンパイルされる必要があります。
また、2.0.x には Start-TLS のサポートもあります。
</PARA>

<!--
<NOTE><PARA>Start-TLS allows to enable TLS if the client requests it. This way
it is possible to use only an LDAP port for both secure and insecure
connections.</PARA></NOTE>
-->
<NOTE><PARA>Start-TLS は、クライアントが要求したときだけ<!-- if -->
TLS を有効にすることができるようにします。この方法だと、単独の
LDAP ポートをセキュアな接続とそうでない接続の両方に使うことが可能です。
</PARA></NOTE>

<!--
<PARA>OpenLDAP 1.2.x, instead, is an LDAP V2 protocol implementation and does
not provide SSL/TLS.</PARA>
-->
<PARA>OpenLDAP 1.2.x はそれとは異なり<!-- instead -->
LDAP V2 プロトコルによる実装であり、SSL/TLS を備えていません。
</PARA>

<!--
<PARA>Valuable information on SSL/TLS on OpenLDAP 2.0.x can be found on the
OpenLDAP web site, here we will focus how to use an SSL tunnel to secure LDAP
parties that are not SSL/TLS aware</PARA>
-->
<PARA>OpenLDAP 2.0.x 上の SSL/TLS に関しては OpenLDAP のウェブサイトに
価値ある情報がありますので、ここでは SSL/TLS に対応していない LDAP パーティを
SSL トンネルを使ってセキュアにする方法に焦点を合わせることにします。
</PARA>

</SECT2>

<!--
<SECT2><TITLE>How to use stunnel to provide SSL/TLS to an LDAP V2
server</TITLE>
-->
<SECT2><TITLE>stunnel を使って LDAP V2 サーバに SSL/TLS を提供する方法</TITLE>

<!--
<PARA>If you use OpenLDAP 1.2.x you need a general purpose SSL wrapper to add
SSL capabilities to the server. Stunnel (<ULINK
URL="http://www.stunnel.org">www.stunnel.org</ULINK>) has been found to be
stable and suitable for this application. </PARA>
-->
<PARA>OpenLDAP 1.2.x を使っているならば、サーバに SSL 機能を
追加するためには汎用 SSL ラッパが必要になります。stunnel (<ULINK
URL="http://www.stunnel.org">www.stunnel.org</ULINK>) は
安定していて、この目的に適しています。
</PARA>

<!--
<PARA>Installing it is quite simple, but first you have to install OpenSSL
(<ULINK URL="http://www.OpenSSL.org">www.OpenSSL.org</ULINK>) to have the
required library and tools. </PARA>
-->
<PARA>stunnel のインストールはとても簡単ですが、はじめに OpenSSL
(<ULINK URL="http://www.OpenSSL.org">www.OpenSSL.org</ULINK>)
をインストールして、必要なライブラリとツールを用意しなくてはなりません。
</PARA>

<!--
<PARA>OpenSSL, is an open source implementation of the SSL protocol that
provides the SSL library and a set of cryptography tools.</PARA>
-->
<PARA>OpenSSL とは SSL プロトコルのオープンソースによる実装であり、
SSL のライブラリと暗号ツール一式を備えています。
</PARA>

<!--
<PARA>To install OpenSSL you have to type the following commands:</PARA>
-->
<PARA>OpenSSL をインストールするには
次のコマンドを入力しなくてはなりません。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ ./config
$ make
$ make test
# make install
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ ./config
$ make
$ make test
# make install
</PROGRAMLISTING></PARA>

<!--
<PARA>usually, everything will be installed in
<FILENAME>/usr/local/ssl</FILENAME>.</PARA>
-->
<PARA>ふつうは、すべて <FILENAME>/usr/local/ssl</FILENAME> 内に
インストールされることになります。
</PARA>

<!--
<PARA>If OpenSSL is correctly installed the only command needed to compile and
install stunnel are:</PARA>
-->
<PARA>OpenSSL が正しくインストールされていれば、stunnel をコンパイルして
インストールするために入力が必要なのは、次のコマンドだけです。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ ./configure
$ make
# make install
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ ./configure
$ make
# make install
</PROGRAMLISTING></PARA>

<!--
<PARA>Stunnel uses a server certificate for SSL, this can be a self signed
certificate, or, better, a certificate signed by your own Certification
Authority (the SSL client has to trust the CA too).</PARA>
-->
<PARA>stunnel は SSL にサーバ証明書を使います。
これは自己署名の証明書 (self signed certificate) でもよいのですが、
さらに良いのは自分の認証局 (Certification Authotrity) によって署名された
証明書です (SSL クライアントもその CA を信用していなくてはなりませんが)。
</PARA>

<!--
<PARA>A commonly used place used to store such certificate is:</PARA>
-->
<PARA>そのような証明書の、一般的に用いられる保管場所はここです。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
/usr/local/ssl/certs/stunnel.pem
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
/usr/local/ssl/certs/stunnel.pem
</PROGRAMLISTING></PARA>

<!--
<PARA>If having a Certification Authority is not a concern, a self signed
certificate can be produced using the tools provided by the OpenSSL
suite.</PARA>
-->
<PARA>もし認証局の
有無を気にしない<!-- not a concern = 関係ない？ -->のであれば、
OpenSSL セットによって提供されるツールを使って、
自己署名の証明書を作成できます。
</PARA>

<!--
<PARA>In the stunnel directory (to use the configuration file
<FILENAME>stunnel.cnf</FILENAME>) type the following commands:</PARA>
-->
<PARA>stunnel のディレクトリ内の <FILENAME>stunnel.cnf</FILENAME>
という設定ファイルを使うため、そのディレクトリで、次のコマンドを
入力してください。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ openssl req -new -x509 -days 365 -nodes -config stunnel.cnf \
            -out stunnel.pem -keyout stunnel.pem
$ openssl gendh 512 >> stunnel.pem
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
$ openssl req -new -x509 -days 365 -nodes -config stunnel.cnf -out stunnel.pem -keyout stunnel.pem
$ openssl gendh 512 >> stunnel.pem
</PROGRAMLISTING></PARA>

<!--
<PARA>This will produce a self signed certificate, valid for a year, in the
file <FILENAME>stunnel.pem</FILENAME>.</PARA>
-->
<PARA>これによって、自己署名による一年間有効な証明書が
<FILENAME>stunnel.pem</FILENAME> ファイルの中に作成されます。
</PARA>

<!--
<PARA>Once stunnel is installed, you can start up first the LDAP server on port
389 (the default LDAP port):</PARA>
-->
<PARA>stunnel がインストールされたら、まず最初に次のようにして
LDAP サーバを 389 番のポート (デフォルトの LDAP ポート) 上に
起動してください<!-- can start up -->。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
#/usr/local/libexec/slapd
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# /usr/local/libexec/slapd
</PROGRAMLISTING></PARA>

<!--
<PARA>Then stunnel on port 636 (the port used by LDAPS client): </PARA>
-->
<PARA>それから次のように 636 番の (LDAPS クライアントによって
使用される) ポートに stunnel でトンネルしてください。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# /usr/local/sbin/stunnel  -r ldap  -d 636 \
 -p /usr/local/ssl/certs/stunnel.pem
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# /usr/local/sbin/stunnel -r ldap -d 636 -p /usr/local/ssl/certs/stunnel.pem
</PROGRAMLISTING></PARA>

<!--
<PARA>For debugging you can start <FILENAME>stunnel</FILENAME> in foreground
with the following syntax:</PARA>
-->
<PARA>デバッグのために次の書式<!-- syntax -->でフォアグラウンドに
<FILENAME>stunnel</FILENAME> を起動することもできます<!-- can start -->。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# /usr/local/sbin/stunnel  -r ldap  -d 636 \
 -D 7 -f -p /usr/local/ssl/certs/stunnel.pem
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# /usr/local/sbin/stunnel -r ldap -d 636 -D 7 -f -p /usr/local/ssl/certs/stunnel.pem
</PROGRAMLISTING></PARA>

</SECT2>

<!--
<SECT2><TITLE>How to use stunnel to provide SSL to LDAP clients </TITLE>
-->
<SECT2><TITLE>stunnel を使って LDAP クライアントに SSL を提供する方法</TITLE>

<!--
<PARA>Many LDAP client are not SSL aware, anyway, it is possible using stunnel
in client mode, to provide SSL to these clients.</PARA>  
-->
<PARA>多くの LDAP クライアントは SSL 対応ではありません。
しかし stunnel をクライアントモードで使うことで、
これらのクライアントに SSL を提供することが可能です。
</PARA>

<!--
<PARA>This is quite simple. You can start stunnel on the client host, using the
LDAPS port, and forward requests to this port to the actual LDAP server:</PARA>
-->
<PARA>これは非常に簡単です。クライアントホスト上で stunnel を
次のように起動して、LDAPS ポートに対する要求を実際の LDAP サーバに
転送するようにしてください<!-- can -->。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# stunnel -c -d 636 -r  ldapserver.yourorg.com:636
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# stunnel -c -d 636 -r ldapserver.yourorg.com:636
</PROGRAMLISTING></PARA>

<!--
<PARA>Now LDAP clients must be configured using
<FILENAME>localhost:636</FILENAME> as the LDAPS server to use.</PARA>
-->
<PARA>このとき LDAP クライアントは <FILENAME>localhost:636</FILENAME>
を LDAPS サーバとして使うよう設定されなくてはなりません。
</PARA>

</SECT2>

<!--
<SECT2><TITLE>How to use stunnel to provide SSL for slurpd replication</TITLE>
-->
<SECT2><TITLE>stunnel を使って slurpd レプリケーションに SSL を提供する方法</TITLE>

<!--
<PARA>At the moment slurpd (slapd replication daemon) hasn't SSL capabilities,
anyway you can use stunnel in client mode to have this job done.</PARA>
-->
<PARA>現時点で slurpd (slapd レプリケーションデーモン) は SSL 機能を
持っていないとはいえ、stunnel をクライアントモードで使って、
この役割をさせることができます。
</PARA>

<!--
<PARA>Using stunnel in client mode on the master, you can forward a local  
port to a remote port:</PARA> 
-->
<PARA>次のようにマスタサーバ上でクライアントモードの stunnel を使い、
ローカルポートをリモートポートに転送してください<!-- can forward -->。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# stunnel -c -d 9636 -r  ldapreplica.yourorg.com:636
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
# stunnel -c -d 9636 -r ldapreplica.yourorg.com:636
</PROGRAMLISTING></PARA>

<!--
<PARA>and have on the master LDAP server in <FILENAME>slapd.conf</FILENAME></PARA>
-->
<PARA>そしてマスタ LDAP サーバの <FILENAME>slapd.conf</FILENAME>
に次の記述を入れてください。
</PARA>

<!--
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
replica host=localhost:9636
</PROGRAMLISTING></PARA>
-->
<PARA><PROGRAMLISTING FORMAT="LINESPECIFIC">
replica host=localhost:9636
</PROGRAMLISTING></PARA>

</SECT2>

</SECT1>
