サーバ証明書のWebサーバへの登録
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だとサーバ証明書を信用するかどうかといった質問がされる.

