証明書の設定Apache (mod_ssl 2.0.45以降) 新規/更新用
中間CA証明書、サーバー証明書をダウンロードし、次の手順に従い証明書を設定してください。
このページでは Apache のmod_ssl (2.0.45以降) に証明書をインストールする方法を説明します。
2.0.44以前の古いApache 2.0系列には、チェーン証明書の処理に欠陥があり、このページの手順ではチェーン証明書をインストールできません。新しいApacheへアップグレードするか、またはApache (mod_ssl 2.0.44以前やApache-SSL)のページを参考にインストールしてみてください。
≪Windows版をご利用の場合≫
Windows環境では実際の表記や用語が異なりますのでご注意ください。
環境 | Unix | DOS(Windows) |
変数置換 | ${変数名} | %変数名% |
パス名 | /ディレクトリー名/ファイル名 | ドライブ名:¥ディレクトリー名¥ファイル名 |
プロンプト | #や$ | ドライブ名> |
ファイル名を変えるコマンド | mv | ren |
ファイルをつなぐコマンド | cat | type |
コマンド・インタープリタ | シェル | コマンド プロンプト |
またインストールを行うにはSSLモジュールを同梱した物件をご利用ください。 Apache Software Foundationの配布しているWindows用のApacheには、SSLモジュールを同梱していない物件もあります。
このページで例としてあるパス名は任意のため、異なる値を指定している場合は適宜読み替えてください。
/APACHE_HOME
:Apacheのインストール先ディレクトリーです。
bin
:コマンドのインストールされる下位ディレクトリーです。 見当たらないときは、「sbin」「libexec」などがないか確認してください。
C:
:Windows環境ではC:ドライブにApacheがインストールされていることを前提としています。
立上げファイルについて
SSL/TLS通信を行うためには、 Apacheの立上げ時に読み込むファイル (立上げファイル) へ証明書や鍵ペアのパス名を指定する必要があります。
既定の立上げファイルは、 サーバーのインストール先ディレクトリーのconf下位ディレクトリーにあります。
サーバーの種類や版既定の立上げファイル名 | |
---|---|
Apache 2.2以降 | extra 下位ディレクトリーの下の httpd-ssl.conf |
2.0 | ssl.conf |
1.3 | httpd.conf |
※サーバーの種類や版にしたがって具体的なパス名は異なります
※2系のApacheのconf/originalという下位ディレクトリーには、 上記と同名の別ファイルのあることがあります。 同名の別ファイルと勘違いしないよう、 ご注意ください。
※上記は、 Apacheの開発者らの配布しているオリジナルの値です。 上記と違った値にカスタム化し、 配布されていることもあります。 立上げファイルが見つからない場合は、 配布元へお問い合わせください。
SSL/TLS設定ファイルの有効化
Apache 2系列では、サーバーの立上げファイル (httpd.conf) と、 SSL/TLSの設定ファイル (ssl.conf や extra/httpd-ssl.conf など) が別々になっています。
サーバーの立上げファイルにある「Include」のエントリーで、 SSL/TLSの設定ファイルを取り込む指定がされていますが、 SSL/TLSの設定を取り込むようになっていない場合、 「Include」の左にある「#」 文字を削除し、 設定を取り込むよう変更をしてください。
例: Include ssl.conf
必要モジュール群の組込み
Apache 2.3系列以降では、 mod_sslモジュール自身や、 mod_sslモジュールの呼び出している下位モジュール群を、 Apache HTTPサーバーの立上げファイル (httpd.conf) から組み込む必要があります。
「LoadModule」のエントリーにモジュールとして組み込む指定がされていますが、 指定がされていない場合はモジュールを組み込む指定をしてください。
例)
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule ssl_module modules/mod_ssl.so
※すでに指定があり、左に「#」文字がある場合は、「#」を削除してください。
※パス名の区切り文字は、 UnixやWindowsといった環境にかかわらず常に「/」文字です。
「LoadModule」 :指定の名前のファイルをモジュールとして組み込む指定
「modules/mod_socache_shmcb.so」, 「modules/mod_slotmem_shm.so」, 「modules/mod_ssl.so」
:組み込むモジュールの入ったファイルの名前
このファイル名は、Apache-SSLやApacheの開発者らの配布しているオリジナルの値です。
上記と違った値にカスタム化し、配布されていることもあります。
モジュール群を組み込めない場合は、配布元へお問い合わせください。
モジュール群を正しく組み込めることを確認
コマンド例:
# /APACHE_HOME/bin/apachectl -t
Windows環境の場合
(Apache 2.2以降)
C:¥>¥APACHE_HOME¥bin¥httpd -t
(Apache 2.0以前)
C:¥>¥APACHE_HOME¥bin¥Apache -t
「Syntax OK」 と出力されることをご確認ください。
上記で「OK」が出力されない場合、エントリーやファイル名が間違っている可能性があります。
各証明書は必ずバックアップをとって、 安全な場所に格納してください。
1.チェーン証明書(中間CA証明書)のインストール
- 注意事項
- 中間CA証明書が新しくなりました。
2023/9/2以降に発行される証明書より、新しい中間CA証明書をインストールする必要があります。
お客様専用ページから新しい中間CA証明書をダウンロードして、インストールを行ってください。
チェーン証明書 (中間CA証明書) の設定方法は、Apache 2.4.7以前とApache 2.4.8以降で異なります。
1-1
Apache 2.4.7以前
この手順では例として、立上げファイル内の SSLCertificateChainFile エントリに、以下のように指定されているものとします (お使いのブラウザによっては、実際は1行の設定が、2行以上で表示、印字されることがあります)。
例)SSLCertificateChainFile /APACHE_HOME/conf/ssl.crt/ca.crt
1-1-1
チェーン証明書 (中間CA証明書)のディレクトリの移動
中間CA証明書を、SSLCertificateChainFile エントリで指定したパス名へ移動させます。
※中間CA証明書は、現在作業中のディレクトリにあるものとします。
コマンド例:
mv chain.txt /APACHE_HOME/conf/ssl.crt/ca.crt
1-1-2
確認
指定したディレクトリーに、「ca.crt」ファイルが保存されているか、 ご確認ください。
1-2
Apache 2.4.8以降
この手順では例として、立上げファイル内の SSLCertificateFileエントリに、以下のように指定されているものとします(お使いのブラウザ によっては、実際は1行の設定が、2行以上で表示、印字されることがあります)。
例) SSLCertificateFile /APACHE_HOME/conf/ssl.crt/server.crt
1-2-1
サーバー証明書とチェーン証明書 (中間CA証明書) の連結
サーバー証明書とチェーン証明書 (中間CA証明書) をつないで、 1つのファイルにします。
各証明書ファイルの末尾が5つのハイフンと改行で終わっていることを、ご確認ください。
※サーバー証明書 (B1234567.cer) と中間CA証明書は、現在作業中のディレクトリーにあるものとします。
コマンド例:
cat B1234567.cer chain.txt >server.crt
以上で中間CA証明書のインストールは完了です。
2.サーバー証明書のインストール
この手順では、 例として立上げファイル内のSSLCertificateFileエントリーに以下の指定がされているものとします。
例) SSLCertificateFile /APACHE_HOME/conf/ssl.crt/server.crt
サーバー証明書の設定方法は、Apache 2.4.7以前とApache 2.4.8以降で異なります。
2-1
Apache 2.4.7以前
2-1-1
サーバー証明書を、SSLCertificateFileエントリーで指定した名前のファイルへ移動
サーバー証明書を、 SSLCertificateFileエントリーで指定したパス名へ移動させます。
※B1234567.cer(サーバー証明書)は、現在作業中のディレクトリーにあるものとします。
コマンド例:
mv B1234567.cer /APACHE_HOME/conf/ssl.crt/server.crt
2-1-2
確認
指定したディレクトリーに 「server.crt」 ファイルが保存されているかご確認ください。
2-2
Apache 2.4.8以降
2-2-1
証明書を、SSLCertificateFileエントリーで指定した名前のファイルへ移動
1-2-1.で連結した証明書をSSLCertificateFileエントリーで指定した名前のファイルへ移動させます。
コマンド例:
mv server.crt /APACHE_HOME/conf/ssl.crt/server.crt
以上でサーバー証明書のインストールは完了です。
3.鍵ペアの設定
この手順では例として、 立上げファイル内のSSLCertificateKeyFileエントリーに以下の指定がされているものとします。
例) SSLCertificateKeyFile /APACHE_HOME/conf/ssl.key/server.key
3-1
鍵ペアのファイルの移動
サーバー証明書に対応する鍵ペアのファイルを、SSLCertificateKeyFileエントリーで指定したパス名へ移動させます。
※servername.key(お申込み時に生成した鍵ペアファイル)は、現在作業中のディレクトリーにあるものとします。
コマンド例:
mv servername.key /APACHE_HOME/conf/ssl.key/server.key
3-2
確認
指定したディレクトリーに 「server.key」 ファイルが保存されているかご確認ください。
以上で鍵ペアの設定は完了です。
Windowsなど、 パス・フレーズのキーボード入力 (SSLPassPhraseDialog builtin) がサポートされていない環境では、 パス・フレーズのないことを確認してください。 (メモ帳などで) ファイルを開き、 「Proc-Type:」 で始まる行も 「DEK-Info:」 で始まる行もなければ、 問題ございません。 もしそうでない場合は、「よくあるお問い合せ」 のページにしたがってください。
設定後、 各種エントリーの左に「#」文字がないことをご確認ください。
4.Apacheのサーバー・プロセス再起動
4-1
Apacheのサーバー・プロセスの停止
Apacheのサーバー・プロセスを停止してください。
コマンド例:
/APACHE_HOME/bin/apachectl stop
4-2
Apacheのサーバー・プロセスの再開
Apacheのサーバー・プロセスを再開してください。
コマンド例:
/APACHE_HOME/bin/apachectl start
(Apache 2.0以前の場合 /APACHE_HOME/bin/apachectl startssl)
4-3
パス・フレーズの入力
「Enter pass phrase:」 のようなプロンプトが出た場合、 「鍵ペアおよびCSRの生成」で指定したパス・フレーズを入力してください。
※入力したパス・フレーズは、 エコー・バックされませんので、 パス・フレーズの後、 Enterキーの押下を忘れないようご注意ください。
※「graceful」 や 「restart」 などを引数に指定して実行しても、 新しい証明書の設定になりませんので、ご注意ください。
≪Windows環境の場合≫
停止: (Apache 2.2以降)
C:¥>¥APACHE_HOME¥bin¥httpd -k stop
停止: (Apache 2.0以前)
C:¥>¥APACHE_HOME¥bin¥Apache -k stop
開始: (Apache 2.2以降)
C:¥>¥APACHE_HOME¥bin¥httpd -k start
開始: (Apache 2.0以前)
C:¥>¥APACHE_HOME¥bin¥Apache -k start
証明書のインストールは、以上で完了です。