Apache 2.2.3/mod_ssl/CentOS 5.5 VPS
証明書の有効期限は2011年10月6日で、新しい証明書は正しくインストールされているように見えますが、サイトを閲覧すると、期限切れの証明書が表示されますブラウザのキャッシュを削除して、いくつかの異なるブラウザを使用してみました。 ssl.confファイルからの関連する行(コメント化された行は除外しました。):
Listen 127.0.0.1:443
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
# Note - I tried disabling SSLSessionCache with the "none" setting but it didn't help.
<VirtualHost 127.0.0.1:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.crt
SSLCertificateKeyFile /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.key
SSLCertificateChainFile /var/certs/gentlemanjoe.com/new2011/Gd_bundle.crt
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ServerAdmin [email protected]
DocumentRoot /var/www/gentlemanjoe.com
ServerName gentlemanjoe.com
<Directory /var/www/gentlemanjoe.com>
AllowOverride All
Order deny,allow
allow from all
</Directory>
</VirtualHost>
私がチェックしたもの
最初に、古い証明書とキーファイルを完全に別のフォルダーに移動して、Apacheがまだそれらを取得していないことを確認しました。何も変わっていません。楽しみのために、新しい証明書とキーファイルの名前を一時的に変更してみました。
次に、間違った構成ファイルを編集して、だまされていないことを確認しました。 「locate」を使用すると、/ etc/httpd/conf/httpd.confの下にhttpd.confファイルが1つだけ見つかりました。また、「locate」を使用して、ssl.confファイルが1つだけあることを確認しました(/etc/httpd/conf.d/ssl.conf)。キーファイルは、OpenSSLを使用して生成したもので、GoDaddyがCSRを生成するために提供した指示に従います。
Test.htmlファイルを/var/www/gentlemanjoe.comフォルダーにアップロードし、参照できることを確認することで、適切なサイトで作業していることを確認しました。しかし、HTTPSでテストファイルを表示しようとすると、同じ証明書の期限切れの警告が表示されます。
証明書自体に正しい有効期限があることを確認しました:
openssl x509 -in /var/certs/gentlemanjoe.com/new2011/gentlemanjoe.com.crt -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
07:e7:49:69:97:96:16
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=Arizona, L=Scottsdale, O=GoDaddy.com, Inc., OU=http://certificates.godaddy.com/repository, CN=Go Daddy Secure Certification Authority/serialNumber=07969287
Validity
Not Before: Oct 21 17:37:55 2011 GMT
Not After : Oct 8 21:16:03 2013 GMT
Subject: C=CA, ST=BC, L=Burnaby, O=Diamond Bailey Consolidated Commercial Services Ltd, OU= , CN=www.gentlemanjoe.com
GoDaddyで新しいCSRを使用して証明書の鍵を再設定してみましたが、すべてが機能しているようですが、ブラウザーで同じ結果が得られます。
考えられる手がかり#1
「apachectl restart」を実行すると、error_logファイルに次のように表示されます。
[Fri Oct 21 18:03:33 2011] [notice] SIGHUP received. Attempting to restart
[Fri Oct 21 18:03:33 2011] [notice] Digest: generating secret for digest authentication ...
[Fri Oct 21 18:03:33 2011] [notice] Digest: done
[Fri Oct 21 18:03:33 2011] [info] APR LDAP: Built with OpenLDAP LDAP SDK
[Fri Oct 21 18:03:33 2011] [info] LDAP: SSL support available
[Fri Oct 21 18:03:33 2011] [info] Init: Seeding PRNG with 256 bytes of entropy
[Fri Oct 21 18:03:33 2011] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Fri Oct 21 18:03:33 2011] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Fri Oct 21 18:03:33 2011] [info] Shared memory session cache initialised
[Fri Oct 21 18:03:33 2011] [info] Init: Initializing (virtual) servers for SSL
[Fri Oct 21 18:03:33 2011] [warn] RSA server certificate CommonName (CN) `www.gentlemanjoe.com' does NOT match server name!?
[Fri Oct 21 18:03:33 2011] [info] Server: Apache/2.2.3, Interface: mod_ssl/2.2.3, Library: OpenSSL/0.9.8e-fips-rhel5
[Fri Oct 21 18:03:34 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Fri Oct 21 18:03:34 2011] [info] Server built: Aug 30 2010 12:28:40
GoDaddyの技術者は、wwwとnon-wwwは関係ないことを私に伝え、ブラウザのセキュリティ警告はnot不平なので、同意する傾向がありますサーバー名の不一致ではなく、expirationの場合、古い証明書がまだ何らかの方法でロードされていることを示しています。
考えられる手がかり#2
http://gentlemanjoe.com のHTTPサーバー応答ヘッダーは、「Apache」ではなく「Andromeda」と表示します。 「アンドロメダ」をグーグルで操作すると、このサーバーにインストールされないメディアサーバータイプのプロジェクトが表示されるので、これは私には奇妙に思われます(ただし、これを設定しなかったので、確実とは言えません。 、通常の管理者/開発者は休暇中です。私は彼のサイトで友達を助けています。)また、httpd.confファイルには、「Andromeda」という文字列が含まれていないため、変更されていないことがわかります。それで、彼が使用しているMagento eコマースプラットフォームかもしれませんが、標準のApache応答ヘッダーを置き換える意味は何でしょうか。
何かがApacheの前にあります。その構成を確認してください:
Listen 127.0.0.1:443
....
<VirtualHost 127.0.0.1:443>
ローカルホストでのみリッスンしているので、インターネットクライアントがこのサービスに直接アクセスすることはありません-プロキシ化されている可能性があります。
Apacheが適切な証明書を読み込んでいるかどうかの健全性チェックについては、Apacheのリスナーでサービスに直接アクセスしてください:openssl s_client -connect 127.0.0.1:443 -showcerts
Andromedaヘッダーがわからないので、プロセスを見つけましょう:lsof -i
。
Apacheは127.0.0.1:443
、他の一部のサービスは0.0.0.0:443
(またはVPSのパブリックアドレス:443
)-新しい証明書が必要なものです。
この問題の一般的な原因は、Apacheの複数の実行中のインスタンスです。構成の変更は、ユーザーが(再)開始したプロセスによって取得されますが、要求は、古い構成で実行されている古いプロセスによって処理されます。
サービスを停止します。
service Apache2 stop
サイトに引き続きアクセスできるかどうかを確認します。はいの場合、原因は特定されています。
今すぐ実行
ps aux | grep Apache
実行中のApache2プロセスとそのPIDのリストが表示されます。すべてを強制終了します(Apache Tomcatのように、このコマンドは、Apacheの名前/ユーザーなどで無関係なプロセスを返す場合もあります。強制終了したくない場合があります)。
kill <pid>
Ps auxを再度実行し、プロセスが実行されていないことを確認します。
サイトにアクセスできるかどうか再度確認してください。それはいけません。
Apacheサービスを開始します
service Apache2 start
新しい証明書が提供されていることを確認します。
プロセスを強制終了したくない場合は、システムを再起動できます。同じ効果があります。