20.6. 鍵の生成

鍵の生成にはrootで操作する必要があります。

最初に、cdコマンドを実行して/etc/httpd/confディレクトリに移動します。次の2つのコマンドを実行して、インストール時に生成された鍵と証明書を削除します。

rm ssl.key/server.key
rm ssl.crt/server.crt

次に、自分自身のランダム鍵を作成します。/usr/share/ssl/certsディレクトリに 移動して、次のコマンドをタイプします。

make genkey

次のようなメッセージが表示されます:

umask 77 ; \
/usr/bin/openssl genrsa -des3 1024 > /etc/httpd/conf/ssl.key/server.key
Generating RSA private key, 1024 bit long modulus
.......++++++
................................................................++++++
e is 65537 (0x10001)
Enter PEM pass phrase:

ここでパスワードを入力します。安全のため、パスワードは8文字以上で、数字や句読点が含まれている必要があります。 また、辞書にある単語は使用しないでください。また、パスワードは大文字/小文字を区別することを忘れないで下さい。

注意注意
 

セキュアサーバーを起動するたびにこのパスワードを入力する必要があります。 パスワードは忘れないでください。

パスワードが正しいことを確認するために、再入力する必要があります。正しく入力すると、 /etc/httpd/conf/ssl.key/server.keyというファイルが作成され、 ここに鍵が含まれています。

セキュアWebサーバーを起動するたびにパスワードを入力しないようにするには、鍵を作成する場合に make genkeyではなく、次の2つのコマンドを使用します。

コマンドを次のとおり実行して鍵を作成します:

/usr/bin/openssl genrsa 1024 > /etc/httpd/conf/ssl.key/server.key

そして、更に次のコマンドを使用して、このファイルの権限が正しく設定されていることを 確認します:

chmod go-rwx /etc/httpd/conf/ssl.key/server.key

上記のコマンドを使用して鍵を作成した場合は、セキュアサーバーを起動するときにパスワードを 入力する必要はありません。

注意用心
 

セキュアWebサーバーのパスワード機能を無効にすると、セキュリティ上のリスクが発生します。 セキュアWebサーバーのパスワード機能を無効にすることはお勧めできません。

パスワードを使用しない場合に発生する問題は、直接ホストマシンのセキュリティに影響します。たとえば、 悪意のある人物がホストマシンの通常のUNIXセキュリティを突破した場合、その人物はシステムの秘密鍵 (server.keyファイルの内容)を入手できるでしょう。この鍵を使用すれば、 Webページを偽造できて、本来の所有者のサイトのように見せかけることもできるのです。

ホストコンピュータでUNIXセキュリティに関する作法が厳密に守られていれば(オペレーティングシステムの すべてのパッチとアップデートを公開と同時にインストールし、不要なサービスあるいは危険度が高いサービスは 実行しない、など)、セキュアWebサーバーのパスワードは不要であるようにも思えます。ただし、セキュアサーバーは 頻繁に再起動するものではないので、ほとんどの場合はパスワードを入力することによって得られる安全性に価値が あるはずです。

server.keyファイルの所有者はシステムのrootユーザーとし、ほかのユーザーはアクセス できないようにしてください。このファイルのバックアップコピーを作成し、安全な場所に保存してください。 バックアップコピーが必要となるのは、証明書の要求を作成するためにserver.keyファイルを 使用した後、このファイルが失われると、証明書が無効になり、CAの支援を受けられなくなるためです。その場合、 唯一のオプションは、新しい証明書を要求(そして支払)をすることになります。

CAから証明書を購入する場合は、項20.7に進みます。自己署名証明書を作成する場合は、項20.8に進みます。