Apache:ECC対応証明書のインストール方法
ECC(楕円曲線暗号)証明書はApacheで利用することができますが、古いOSのスマートフォンの中にはECC証明書未対応のものもあります。
ECC(楕円曲線暗号)の概要と特徴については楕円曲線暗号(ECC)を参照してください。
ECC対応証明書を未取得の場合は、まずApache:ECC対応CSR作成方法を参照し、対応の証明書を取得してください。
ECC 対応証明書のインストール手順
-
証明書をサーバーに保存お送りした証明書ファイル(例:your_domain_name.crt と DigiCertCA.crt)を、サーバー上の秘密鍵と同じディレクトリにコピーします。
-
Apache 設定ファイルの編集Apacheの設定ファイルの位置と名称は利用環境によって異なります。以下では代表的なディレクトリー名と名称について説明していますが、すべてを網羅してはいません。記載にマッチしない場合は、ご利用環境に合わせて読み替えてください。Apacheのメインの設定ファイルの名称でよく使われているのは、httpd.conf あるいはapache2.conf で、/etc/httpd/ディレクトリーや/etc/apache2/ディレクトリーに置かれています。
様々な環境でのデフォルトの設定ファイルの名称とその位置についてはHttpd Wiki - DistrosDefaultLayoutを参照してください。多くの場合、SSLの設定ファイルは<VirtualHost> 指定を記載した独立したファイルで行われます。
そのファイルの代表的なディレクトリーは /etc/httpd/vhosts.d/ 、/etc/httpd/sites/ です。名称は httpd-ssl.conf などです。
Linux 環境でどのファイルで設定を行ったらよいか不明の場合は、以下のコマンドが設定ファイルを探すのに役立つかもしれません。# grep -i -r "SSLCertificateFile" /etc/httpd/
-
SSL 設定対象のVirtualHostブロックを特定まず、SSL設定対象のサイトをhttpsとhttpの両方でアクセスできるようにするか、httpsだけのアクセスとするかを決めます。httpsとhttpの両方でアクセスできるようにする場合既存の80番ポートについてのVirtualHost設定はそのまま残したうえで、80番ポートについてのVirtualHost設定をコピーし、下の例にある太字の部分を追加して、443番ポートについての設定を行います。httpsだけのアクセスの場合例のようにSSL利用可能なVirtualHost設定を行います。
以下は非常に単純化した、SSL利用に最低限必要な要素だけで構成しています。
実利用の場合には、一般にログの指定など様々な要素が加えられています。例:<VirtualHost 192.168.0.1:443> DocumentRoot /var/www/html2 ServerName www.yourdomain.com SSLEngine on SSLCertificateFile /path/to/your_domain_name.crt SSLCertificateKeyFile /path/to/server.key SSLCertificateChainFile /path/to/DigiCertCA.crt </VirtualHost>指定する証明書関係ファイルについて-
SSLCertificateFile /path/to/your_domain_name.crt
↑この行では、SSL 証明書の名称(例: your_domain_name.crt)と位置をフルパスで指定します。
-
SSLCertificateKeyFile /path/to/server.key
↑この行では、秘密鍵の名称(例: server.key)と位置をフルパスで指定します。
-
SSLCertificateChainFile /path/to/DigiCertCA.crt
↑この行では、中間証明書の名称(例: DigiCertCA.crt)と位置をフルパスで指定します。
-
SSLCertificateFile /path/to/your_domain_name.crt
-
設定内容をテストするApache は設定ファイルに文法エラーがあると起動しません。そのため以下のコマンドで文法チェックを行います。
# apachectl configtest
※環境によっては以下のコマンドを実行してください。# apache2ctl configtest
-
Apacheの再起動apachectl コマンドでApacheを再起動します。
# apachectl stop
# apachectl start
ApacheがSSLを利用できる状態で起動しない場合apachectl startコマンドの代わりにapachectl startsslコマンドを実行してみてください。
もし、apachectl startsslでないとApacheがSSLを利用できる状態で起動しない場合は、apachectl startでSSLも含めてApacheが再起動できるよう調整することをお勧めします。
※apachectl startsslでないとApacheがSSLを利用できる状態で起動しない場合、Apacheの再起動の度にapachectl startsslを手動で実行しなければならなくなります。
この調整は、一般的にはSSLについての指定が記述されている<IfDefine SSL>から</IfDefine> までを削除すればよいはずです。