FreeBSD には、OpenSSL ツールキットが含まれています。 OpenSSL は、 通常の通信層の上位にあるトランスポート層を暗号化し、 多くのネットワークアプリケーションおよびサービスと組み合わせて使用できます。
OpenSSL は、 メールクライアントの暗号化された認証、 クレジットカードでの支払いといったウェブベースの取引などで使われます。 www/apache22 および mail/claws-mail といった多くの port では、 OpenSSL とともに構築するコンパイルに対応しています。
多くの場合、Ports Collection は、
make の WITH_OPENSSL_BASE
が明示的に
「yes」 に設定されていないと、
security/openssl port
の構築を試みます。
FreeBSD に含まれている OpenSSL のバージョンは、Secure Sockets Layer v2/v3 (SSLv2/SSLv3) および Transport Layer Security v1 (TLSv1) ネットワークセキュリティプロトコルに対応しており、 多目的な暗号化ライブラリとして使うことができます。
OpenSSL は、
IDEA アルゴリズムに対応していますが、
合衆国の特許により、デフォルトでは無効になっています。
もし使用したいのであれば、ライセンス条項を必ず確認し、
ライセンス条項に合致するのであれば、
/etc/make.conf
において
MAKE_IDEA
変数を設定してください。
最も一般的な OpenSSL の利用方法のひとつは、 ソフトウェアアプリケーションが使えるように証明書を提供することです。 これらの証明書により、会社または個人の公開鍵が、 改ざんやなりすましが行われていないことを確認できます。 もし問題となっている証明書が、「認証局」 (CA) により検証されなければ、 警告が表示されます。 CA は、VeriSign のような会社で、個人または会社の公開鍵の検証を行えるように、 証明書に署名を行います。 証明書を作成するには費用がかかり、 証明書の使用は必要条件ではありませんが、 証明書を使うことで、 ユーザを安心させることができます。
以下のコマンドにより、証明書を作成できます。
#
openssl req -new -nodes -out req.pem -keyout cert.pem
Generating a 1024 bit RSA private key ................++++++ .......................................++++++ writing new private key to 'cert.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Systems Administrator
Common Name (eg, YOUR name) []:localhost.example.org
Email Address []:trhodes@FreeBSD.org
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:SOME PASSWORD
An optional company name []:Another Name
「Common Name」 プロンプト直後に表示されているのは、 ドメイン名です。 このプロンプトでは、検証するサーバ名の入力が必要となります。 ドメイン名以外を入力すると、役に立たない証明書が作成されます。 他のオプションとして、有効期限を指定したり、 別の暗号化アルゴリズムを選択することができます。 オプションの完全なリストは、 openssl(1) で説明されています。
このコマンドを実行したディレクトリには、
2 つのファイルが作成されているはずです。
1 つは、証明書要求 req.pem
です。
このファイルを CA に送ると、
CA は含まれている内容を検証し、
検証に成功すると、証明書要求に署名を行い、
作成された証明書を送り返します。
もうひとつ、cert.pem
と呼ばれるファイルが生成されます。
これは証明書の秘密鍵であり、
どのようなことがあっても保護しなくてはなりません。
もし、他の人の手に渡ると、手に入れた人は、
ユーザまたはサーバになりすますことができてしまいます。
CA の署名が必要ない場合には、 自己署名証明書を作成できます。 最初に RSA の鍵を生成してください。
#
openssl dsaparam -rand -genkey -out myRSA.key 1024
次に、CA 鍵を生成してください。
#
openssl gendsa -des3 -out myca.key myRSA.key
この鍵を使って証明書を作成してください。
#
openssl req -new -x509 -days 365 -key myca.key -out new.crt
新しく 2 つのファイルがこのディレクトリに作成されます。
プライベート鍵 myca.key
および
証明書 new.crt
です。
これらのファイルを、好ましくは
/etc
以下で、
root
のみが読むことのできるディレクトリに置く必要があります。
許可属性は 0700 が適切です。
許可属性は chmod(1) を使って設定できます。
証明書の一つの利用方法は、Sendmail MTA への接続を暗号化することです。 これにより、 ローカルの MTA 経由でメールを送信するユーザが、 テキスト認証を使用しなくてもすむようになります。
いくつかの MUA は、 ユーザが証明書をローカルにインストールしていないと、 エラーを出力します。 証明書のインストールに関する詳細な情報については、 ソフトウェアに付随の文書を参照してください。
Sendmail
を設定するには、以下の行をローカルの
.mc
ファイルに含めてください。
dnl SSL Options define(`confCACERT_PATH',`/etc/certs')dnl define(`confCACERT',`/etc/certs/new.crt')dnl define(`confSERVER_CERT',`/etc/certs/new.crt')dnl define(`confSERVER_KEY',`/etc/certs/myca.key')dnl define(`confTLS_SRV_OPTIONS', `V')dnl
この例では、
ローカルで証明書および鍵ファイルは、ローカルの
/etc/certs/
に置かれています。
ファイルの編集を保存し終わったら、
/etc/mail
において
make install
と入力することで、ローカルの .cf
ファイルを再構築する必要があります。
その後、make restart
と入力して、Sendmail
デーモンを再起動してください。
すべてがうまくいっていれば、
/var/log/maillog
にはエラーメッセージは出力されず、
Sendmail
がプロセスの一覧に表示されます。
以下は簡単な試験の例で、telnet(1) を使って、 メールサーバに接続しています。
#
telnet example.com 25
Trying 192.0.34.166... Connected toexample.com
Escape character is '^]'. 220example.com
ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)ehlo example.com
250-example.com Hello example.com [192.0.34.166], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELPquit
221 2.0.0example.com
closing connection Connection closed by foreign host.
出力に 「STARTTLS」 行が表示されれば、 すべてが適切に機能しています。
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。