DigiCert証明書の正規代理店株式会社アールエムエス
DigiCert サーバー証明書利用団体
  1. ホーム
  2. サポート
  3. インストール方法
  4. Apacheトラブルシューティング

Apacheトラブルシューティング

証明書をインストール後発生する代表的なトラブルとその解決方法についての説明です。
以下に該当しないトラブルについては、メール(info@rms-digicert.ne.jp)でお問合わせください。

Apacheが起動しない

証明書をインストール後 Apacheの再起動に失敗することがあります。こうした場合はApacheのログファイルを調査するのが、最初に行うべき問題解決の手段です。
多くの場合、Apacheのエラーログに手がかりがあります。
Apacheのエラーログはデフォルトでは以下の位置にあります。
該当の場所にエラーログが見つからない場合は、httpd.conf などのApacheの設定ファイルでエラーログについての記述を調べてください。

Debian (Ubuntu): /var/log/apache2/error_log
Red Hat Enterprise Linux, CentOS: /var/log/httpd/error_log
Windows: C:\Program Files\Apache Group\Apache2\logs\error.log
Source Code からコンパイルした場合 : /usr/local/apache2/logs/error_log

以下がエラーログ記述の代表的なものとその場合の対応方法です。

"Unable to configure RSA server private key", "certificate routines:X509_check_private_key:key values mismatch"

このエラーログの記述は、秘密鍵と証明書がマッチしていないことを示しています。使用する証明書と秘密鍵の指定は ssl.conf 等のApacheの設定ファイルで行われていますので、意図した通りの指定になっているかをチェックしてください。一般的には VirtualHost ブロック内で、以下のように指定されています。

SSLCertificateFile /path/to/your_domain_name.crt SSLCertificateKeyFile /path/to/your_private.key

秘密鍵と証明書がマッチしているかどうかのチェックは以下のコマンドで行うことができます。

# openssl x509 -noout -modulus -in your_domain_com.crt | openssl md5
# openssl rsa -noout -modulus -in your_domain_com.key | openssl md5

コマンドを実行するとそれぞれ、(stdin)= 821c6adaea3e856aec9004d935cf6f25259 のようにチェックサム値を返します。秘密鍵と証明書がマッチしている場合はチェックサム値が一致します。

マッチしていない場合は以下のどちらかを実施してください。
  1. サーバーに保存されている秘密鍵から証明書とマッチするものを見つけ、再設定してください。
  2. CSR を新規に作成し、証明書の再発行をご依頼ください。CSR はウイザードを使うと確実・簡単に作成できます。再発行費用は発生しません。
"Invalid command 'SSLEngine'"

このエラーはApacheでSSLを実現するために必須の mod_ssl がインストールされていないことを意味します。
CentOS/RedHat Linux の場合は以下のコマンドで mod_ssl をインストールできます。

# sudo yum install mod_ssl

Debian系の場合は以下のコマンドを実行してください。

# a2enmod ssl
"SSL3_READ_BYTES:sslv3 alert handshake failure", "SSL23_WRITE:ssl handshake failure"

このエラーは、サーバーとブラウザが相互認証する mutual authentication を指定している場合に発生します。SSL handshake 中に、サーバーの証明書と異なるクライアントの証明書が送られてくるとこのエラーになります。
このエラーが発生した場合は .conf ファイルの SSLVerifyClient あるいは SSLVerifyClient optional_no_caSSLVerifyClient none に変更後、Apacheを再起動してください。

同様のエラーが SSLVerifyDepth 1 ディレクティブでも発生することがあります。その場合は、SSLVerifyDepth 1 をコメントアウトしてください。(例: #SSLVerifyDepth 1)
"SSLSessionCache: Invalid argument: size has to be >=8192 bytes"

このエラーは Windows サーバーにApacheをインストールした場合おこることがあります。
原因はApacheがインストールされたフォルダー名にスペースやカッコが含まれていることです。
スペースやカッコが含まれないフォルダーにApacheを移動してください。(例: c:/Program Files (x86)/Apache2/ -> c:/Apache/Apache2/)
あるいはフォルダー名にショートネームを使うのもよいでしょう。以下のコマンドを実行すればショートネームを確認できます。

C:\> dir /x C:\
ショートネームにチルダ ~ が含まれる場合は、バックスラッシュ\ でコメントアウトしてください。 (例: C:/Program Files (x86)/Apache2/ -> C:/Progra\~2/Apache2/)

最後にApacheを再起動します。

中間証明書エラー

ブラウザが「このサイトの証明書は信頼性を検証できません。」のようなエラーを表示する場合は中間証明書をチェックしてください。

中間証明書の指定が正しく行われているかチェック
以下の項目をチェックし、問題が発見されたらそれぞれの対応を行ってください。
  • .conf ファイル( httpd-ssl.conf, ssl.conf, virtual-host.conf等)のVirtualHostブロックで「SSLCertificateChainFile」行がコメントアウトされていないか
    「SSLCertificateChainFile」行を有効にしてください。
  • 間違った中間証明書を指定していないか
    中間証明書として DigiCertCA.crt を指定してください。
上の問題は発見されなかったがエラーが解決しない場合
SSLの設定が他の .conf でも行われていて、重複設定になっている可能性があります。
httpd-ssl.conf, ssl.conf, virtual-host.conf, httpd.conf などをチェックしてください。
以下のコマンドを実行するとSSLの設定が行われているファイルを素早く探すことができます。(/etc/apache2/ は環境に合わせ ServerRootディレクトリを指定してください。
# grep -i -r "SSLCertificateFile" /etc/apache2/
Windows の場合は以下のコマンドになります。
# findstr /s /i "SSLCertificateFile" *.conf
SSLの設定が行われているファイルが見つかったら、重複設定を削除し、Apacheを再起動してください。

安全な接続ができませんでした

ブラウザが「安全な接続ができませんでした」「このサイトは安全に接続できません」等のエラーを返すことがあります。
httpでは正常にアクセスでき、httpsでこのエラーになる場合は以下をチェックしてください。

SSL設定ファイル内の設定がhttpd.confファイルでインクルード設定されているかをチェック
/conf/extra/httpd-ssl.conf, /conf.d/ssl.conf 等のSSL設定ファイル内には正しい設定が行われているのに、httpd.conf ファイルでこれらのファイルがインクルードされていないことがあります。
以下のように正しくインクルード設定されているかをチェックしてください。
行頭に # がある場合は、# を削除してください。
Include conf/extra/httpd-ssl.conf Include conf.d/*.conf
443ポートが利用できない設定になっていないかをチェック
443ポートが利用可能かをチェックし、可能でない場合は、まずファイアウォールで443ポートを利用できるように設定してください。
その後、Apacheの設定ファイルで443をリッスンするように設定してください。
設定を行うファイルは環境により、httpd-ssl.conf, httpd.conf, ssl.conf 等です。書式は以下のようになります。
Listen 443 Listen 192.168.0.1:443
Apacheの起動に問題がないかをチェック
443をリッスンする設定が正しく行われているにもかかわらず問題が解決しない場合は、Apacheの起動に問題がある可能性があります。
初期バージョンのApache2ではSSL利用のためには以下のようなコマンドでApacheを起動する必要があります。
# path/to/httpd -D SSL -k start
# path/to/apachectl startssl
# path/to/httpd startssl
Windowsサーバーでは、「VirtualHost your.domain.com:443」を「VirtualHost _default_:443」に変更したことで問題が解決した例も報告されています。
<VirtualHost> ブロックで SSLEngine ディレクティブが以下のように「On」に設定されていることを確認ください。
<VirtualHost your.domain.com:443> SSLEngine On .... .... .... </VirtualHost>
SSL サーバ証明書とは?
30日間テスト証明書
30日間返金保証制度あり!
コードサイニング証明書
ドキュメントサイニング証明書
デジタル証明書ニュース
HTTPS入門
digicert.comトピックス&ニュース