1:: インストール
Apacheのソースに対して、mod_sslを適用してからのInstallになるため、 若干面倒。 次にナニをすべきかメッセージを残してくれる場合もあるので、 見逃さないように。(大まかな作業順序)
配布元からソースを入手。
# ftp ftp.win.ne.jp
(中略)
configureはやらなくていい事に気付いてしまいました。ショボーン。
※ [黒字]はmod_ssl定番オプション、 [緑字] は、ApacheのConfigureとして、任意のオプション指定する。
最後に
Now proceed with the following commands:と、この後の手順を表示してConfigureが完了。
$ cd /usr/local/src/apache_1.3.28
$ make
$ make certificate
$ make install
mod_sslのConfigureの最後に表示されたインストール方法に習って、インストールしていく。
特に問題がなければ以下のメッセージを表示してmakeが終了する。次のステップについての指示なので良く読む事。
+---------------------------------------------------------------------+
| Before you install the package you now should prepare the SSL |
| certificate system by running the 'make certificate' command. |
| For different situations the following variants are provided: |
| |
| % make certificate TYPE=dummy (dummy self-signed Snake Oil cert) |
| % make certificate TYPE=test (test cert signed by Snake Oil CA) |
| % make certificate TYPE=custom (custom cert signed by own CA) |
| % make certificate TYPE=existing (existing cert) |
| CRT=/path/to/your.crt [KEY=/path/to/your.key] |
| |
| Use TYPE=dummy when you're a vendor package maintainer, |
| the TYPE=test when you're an admin but want to do tests only, |
| the TYPE=custom when you're an admin willing to run a real server |
| and TYPE=existing when you're an admin who upgrades a server. |
| (The default is TYPE=test) |
| |
| Additionally add ALGO=RSA (default) or ALGO=DSA to select |
| the signature algorithm used for the generated certificate. |
| |
| Use 'make certificate VIEW=1' to display the generated data. |
| |
| Thanks for using Apache & mod_ssl. Ralf S. Engelschall |
| rse@engelschall.com |
| www.engelschall.com |
+---------------------------------------------------------------------+
次に make certificate を実行する。
このコマンドを実行する事によってSSLに関する必要なファイル(server.key等)や、
システムが準備される。
既にkeyが存在する場合(バージョンアップ目的)、
実行する必要はないだろう。
このコマンドには4つほどオプションがあり、デフォルトは"TYPE=test"。
Signature Algorithm ((R)SA or (D)SA) [R]: (Enter)
(自動処理)
特に入力せずにEnterを押して行く。正式なCSRを作成するのであれば、ここで正規の情報を入力しても良い。
(参考ページ:日本ベリサイン ステップ3 CSRの生成)
1. Country Name (2 letter code) [XY]: ※ 国名コード (Enter) 2. State or Province Name (full name) [Snake Desert]: ※ 都道府県 (Enter) 3. Locality Name (eg, city) [Snake Town]: ※ 市区町村番地 (Enter) 4. Organization Name (eg, company) [Snake Oil, Ltd]: ※ 組織名 (Enter) 5. Organizational Unit Name (eg, section) [Webserver Team]: ※ 部門名 (Enter) 6. Common Name (eg, FQDN) [www.snakeoil.dom]: ※ サーバのFQDN (Enter) 7. Email Address (eg, name@FQDN) [www@snakeoil.dom]: (Enter) 8. Certificate Validity (days) [365]: (Enter)
(自動処理)
Encrypt the private key now? [Y/n]: (Enter)
Enter PEM pass phrase: (4文字以上でパスフレーズを入力)
Verifying - Enter PEM pass phrase: (4文字以上でパスフレーズを入力)
最後の仕上げのインストールを行なう。
+--------------------------------------------------------+
| You now have successfully built and installed the |
| Apache 1.3 HTTP server. To verify that Apache actually |
| works correctly you now should first check the |
| (initially created or preserved) configuration files |
| |
| /usr/local/apache-ssl/conf/httpd.conf
| |
| and then you should be able to immediately fire up |
| Apache the first time by running: |
| |
| /usr/local/apache-ssl/bin/apachectl start
| |
| Or when you want to run it with SSL enabled use: |
| |
| /usr/local/apache-ssl/bin/apachectl startssl
| |
| Thanks for using Apache. The Apache Group |
| http://www.apache.org/ |
+--------------------------------------------------------+
まずは、構文チェック(configtest)。
|
ApacheサーバをSSLオプションを付与してテスト起動する。SSL対応での起動には秘密のパスワードが必要となるので注意。
既に運用中のサーバの場合は、別のポートで立ち上げて確認すれば良い。
Port 8000※Port番号は1000番以降で任意指定。
successfulが表示されたら、早速ブラウザで接続。
問題がなければ、↓なメッセージが表示される。
おい、それは作動しました!なかなか乱暴な翻訳(エキサイトより)スマソ。
「SSL/TLSaware」アパッチ・ウェブサーバは、このウェブサイトに首尾よくにインストールされました。
起動する事が分かったら、兎にも角にもserver.keyをバックアップする。なくしたら絶対ダメ。
パーミッションにも気をつけること。
2:: Apacheの設定
Apacheの設定に入ります。尚、設定を変更したら、Apacheを再起動することを忘れずに。また、古いApacheを立ち上げてしまったり なんかしてまごまごしないように。
(基本設定)
#!/bin/sh |
SSLPassPhraseDialog exec:/usr/local/ssl/apache_ssl/test.sh
..まぁ、セキュリティ上良くないって言えばそれでしまいなんですけどね。
グローバル・サーバIDは、中間CA局から発行された証明書です。参考資料:Verisign FAQ「このセキュリティ証明は信頼された証明機関から発行されていません」と表示されます」
また、中間CA局証明書はルートCA局より発行された証明書です。
中間CA局証明書がないとブラウザ側で最上位のルートCA局までたどりつくことができません。
このため、グローバル・サーバIDをインストールしたウェブサーバには、中間CA局の証明書もインストールする必要があります。
IE | NN7 |
|
|
3:: 補足というかおまけというか
SSLのキーやら、証明書を扱う上でのFAQみたいなもの。
ApacheのServerRoot「/usr/local/apache」...として説明しますのでよろしく。
サーバの秘密鍵 「server.key」
サーバ証明書要求 「myname.csr」
サーバ証明書 「myname.crt」
インストール時(make certificate)に生成されるもんですが、改めて作成する場合。
まず、乱数発生用のランダムファイル(ファイルであれば何でもOK)を作り、これから秘密鍵を作り出す。
opensslコマンドから、直接CSRを生成する方法。
一つのサーバで複数のCSRを作成したり、単にCSRを作りなおしてみたり、グローバルIDの更新のしてみたりなど、
CSRを作成するときはこの手順で。日本ベリサイン「Apache + OpenSSL CSR生成手順(更新)」
のページにも詳しく掲載されてるので、そっちのほうがいいかもしれん。
14. これ以降入力を求められる以下の情報は、可能であれば何も入力せず[Enter]キーを押して進んでください。
Email Address
A challenge password
An optional company name
作成したCSRを公的機関(ベリサインとか)に提出して証明書をもらうのではなくて、自己署名する場合。
まぁ、ちゃんと通信の暗号化さえされていれば、
所詮個人ページ程度では、ン十万もかけて自分を「本物」と証明してもらわなくてもいいんで、自己署名で十分。。。でしょ?
SSLのオプション付きの起動(startssl)では、サーバの起動時にサーバのパスワードを求めるようになっている。 これはセキュリティを強固にする為だけど、実際運用してみるとかなり面倒くさいので、 パスワードを聞いてこないよう黙らせてしまおう。
運用よりセキュリティをとる場合は以下の設定は必要無いし、してはダメ。
いっそのことserver.keyのパスフレーズを解除してしまうこともできる。 もちろんserver.keyが変わるので、前後のバックアップをとっておくように。
サーバ内の安全な空間(rootだけが読み書きできるような)にパスフレーズを書いた
ファイルを配置し、起動時に読み込む仕組み。
1.起動パスワードを書いたファイル(ssl_startup.sh)を作成
#!/bin/sh |
2.ファイルを安全なところへ配置し、パーミッションを変更
3.httpd.confに、SSLPassPhraseDialogをセット
SSLPassPhraseDialog exec:/PATH/TO/DIR/ssl_startup.sh |
生成したCSRをベリサインに提出したり、その他いろいろ書類を提出し、晴れて証明書を入手したら、
あとは、設定するだけ。
中間CA局証明書をインストールするのを忘れずに。