ファイヤープロジェクト
サーバ証明書のWebサーバへの登録
2005-07-03T02:15+09:00   matsu
Apacheとmod-sslを使用を使用してWebサーバからサーバ証明書を出してみる.
まず,OpenSSLをインストールし,作業ディレクトリを作成する.
# apt-get install libapache-mod-ssl
途中,設定ファイル/etc/apache/modules.confを更新するかどうか聞かれた. 私はこのファイルをすでに修正していたので,現ファイルをキープし,後から以下を追記した.
LoadModule ssl_module /usr/lib/apache/1.3/mod_ssl.so
続いてhttpd.confを記述する. まずHTTPS通信用Listenポートを設定する.
Listen 80
Listen 443
続いてHTTPS通信用バーチャルホストの設定を記述する.
<VirtualHost sslwww.fireproject.jp:443>
SSLEngine on
SSLCertificateFile      /etc/apache/ssl.crt/server.crt
SSLCertificateKeyFile   /etc/apache/ssl.key/server.key
ServerAdmin matsu@fireproject.jp
DocumentRoot /home/matsu/protected_html/
</VirtualHost>
httpd.confの記述は以上である.
上記では,サーバ証明書とそのプライベートキーの格納場所を指定している.
SSLCertificateFile      /etc/apache/ssl.crt/server.crt
SSLCertificateKeyFile   /etc/apache/ssl.key/server.key
したがって,そのとおりにファイルを配置する. 前者は前頁でCAにて発行したサーバ証明書である. 後者はその証明書発行に使用したCSRと一緒に記述されていたファイルから切り出す.
# awk '
  BEGIN{OUT=0;}
  /-----BEGIN RSA PRIVATE KEY-----/ {OUT=1;}
  // {if (OUT==1) {print $0;}}
  /-----END RSA PRIVATE KEY-----/ {OUT=0;}
'  newreq.pem > /etc/apache/ssl.key/server.key
また,確認のため,バーチャルホスト用確認頁を作成しておく.
$ echo hoge > /home/matsu/protected_html/index.html
あとはサーバを再起動する.
/etc/init.d/apache stop
/etc/init.d/apache start
何故かrestartはうまくいかない. startすると,サーバ証明書鍵ペア(CSRとプライベートキーが記述されたファイル)を生成する際に入力したパスワードを尋ねられる.
# /etc/init.d/apache start
Starting web server: apacheEnter pass phrase:
.
あとはWebブラウザにてアクセスして確認する.
http://myserver/
https://myserver/
それぞれのドキュメントルートの頁が出力される. また,httpsだとサーバ証明書を信用するかどうかといった質問がされる.
matsu(C)
Since 2002
Mail to matsu