Apache Webサーバーで証明書を利用する場合は、すべての種類の証明書(SSL Plus/WildCard Plus/マルチドメイン証明書/EV SSL Plus/EVマルチドメイン証明書)で同じ手順で証明書のインストールを行います。証明書のインストールはApacheの設定ファイルに利用する証明書情報を記載することで行われます。
以下では、Apacheの設定ファイルを編集し、SSL/TLS証明書をインストールする方法を、順を追って説明します。
一般に、Apacheの設定ファイルの編集はroot権限で行います。
重要:編集の前に必ずApache設定ファイルのバックアップを保存してください。
当社から納品した証明書(例:your_domain_name.crt)と中間証明書(DigiCertCA.crt)をサーバーに保存します。
保存するディレクトリは /etc/pki/tls/certs のような既存のディレクトリ以外でも構いません。
Apacheのバージョン、インストール方法、OS等の条件により、Apacheの設定ファイルの名前・ディレクトリは異なります。
以下に代表的な例を列記しますので参考にしてください。
多くの場合、Apacheの設定ファイルは /etc/httpd 以下に置かれます。
メインの設定ファイルは httpd.conf(例:/etc/httpd/conf/httpd.conf)です。
各ドメインの設定はこのファイル内の <VirtualHost> ブロックで行われます。
しかし、httpアクセスの設定は httpd.conf で行い、httpsの設定は ssl.conf(例:/etc/httpd/conf.d/ssl.conf)で行うのも一般的です。
そのほかにも /etc/httpd/vhosts.d/ や /etc/httpd/sites/ のようなディレクトリに設定ファイルが置かれることもあります。
一般的には <VirtualHost> ブロックはそれらの設定ファイルの最後の部分に記載されています。
テキストエディタで設定ファイルを開き、証明書を利用しようとしているホスト名のhttpアクセスについて指定されている、<VirtualHost>ブロックを見つけてください。
<VirtualHost> ブロックはホスト名ごとに作られます。 <VirtualHost> で始まり </VirtualHost> で終わるブロックです。
http アクセスについて指定されている場合は、<VirtualHost xxx.xxx.xxx.xxx:80> や <VirtualHost *:80> のように記載されています。
そのブロック内に「ServerName」として記載されているのがホスト名です。
httpの <VirtualHost> ブロックをコピーして、https 設定が行われている設定ファイルの最後の部分に貼り付けます。
https設定が行われている設定ファイルの代表的なものは httpd.conf(例:/etc/httpd/conf/httpd.conf)や ssl.conf(例:/etc/httpd/conf.d/ssl.conf)です。
ブロックを貼り付けて作成した場合は、まず以下を行います。
以下は、非常に単純化したSSL virtual host設定例です。
太文字で表示されている部分がSSLに固有の部分です。
ブロックを貼り付けて作成した場合も、すでに443ブロックが存在した場合も、使用する証明書・秘密鍵・中間証明書を指定します。
Apacheの再起動の前には、必ず以下の設定チェックコマンドを実行してください。
設定ファイルに文法的誤りがある状態で再起動を行うと、Apacheが停止したままになる可能性が大です。
以下のコマンドのチェックは十分条件ではありませんが、少なくともこのチェックはパスしなければならない必要条件です。
コマンドを実行し文法の誤りが見つかった場合は、誤りが指摘されます。
# apachectl configtest
以下のコマンド実行で、Apacheを再起動しSSLを有効にすることができます。
# apachectl stop # apachectl start
「apachectl start」ではApacheが起動せず、「apachectl startssl」で起動するケースがあります。
こうした場合は、/etc/rc.d/init.d/httpd 等の Apache の起動スクリプトの内容を確認し、サーバー再起動時にも Apache が正常に起動できる設定になっているかを確認してください。
設定ファイル内に <IfDefine SSL> と </IfDefine> で囲まれたブロックがある場合は、この二つのタグをコメントアウトすることで、起動スクリプトを変更しないでも正常な起動を期待できます。
Apacheが再起動しない場合、追加した443の <VirtualHost> ブロックをコメントアウトした後、起動コマンド「apachectl start」を実行してください。
これで起動するようであれば、追加した443の <VirtualHost> ブロック内の記述に原因があることが確定できます。起動しない場合はバックアップした設定ファイルを利用してください。
「apachectl configtest」では正常と判断されたのにApacheが起動しない場合は、error_logに原因発見の手がかりが残されていることがあります。
error_log は /www/logs、/var/log/httpd 等に保存されます。
ブラウザからサイトにhttpsを指定してアクセスし、「保護された通信」鍵アイコンなどがURLバーに表示されれば証明書は正しくインストールされています。
正しくインストールされていない場合は、警告のメッセージや警告のアイコンが表示されます。
証明書が正しくインストールされていない場合の表示はブラウザごとに異なります。以下ではFireFoxを例に説明していますがお使いのブラウザでも必要な証明書情報は取得できます。環境に合わせた手順で証明書情報を取得してください。