新しい証明書がインストールされていても、Apacheは古い期限切れの証明書を使用しているようです


15

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 webmaster@donotemailme.com
DocumentRoot /var/www/gentlemanjoe.com
ServerName gentlemanjoe.com
<Directory /var/www/gentlemanjoe.com>
    AllowOverride All
    Order deny,allow
    allow from all
</Directory>          
</VirtualHost>

私がチェックしたこと

最初に、古い証明書とキーファイルを完全に別のフォルダに移動して、Apacheがそれらを何らかの方法で取得していないことを確認しました。何も変わっていません。楽しみのために、新しい証明書とキーファイルの名前を一時的に変更しようとしましたが、Apacheは不満を言って起動を拒否しました。

次に、間違った設定ファイルを編集して、だまされていないことを確認しようとしました。「locate」を使用すると、/ etc / httpd / conf / httpd.confの下にhttpd.confファイルが1つしか見つかりませんでした。また、「locate」を使用して、ssl.confファイルが1つだけであることを確認しました。これは、/ etc / httpd / conf.d / ssl.confです。キーファイルは、GoDaddyがCSRを生成するために与えた指示に従って、OpenSSLを使用して生成したものです。

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非WWWのは問題ではないはずであり、私のブラウザのセキュリティ警告がされているので、私は、同意する傾向が対と私に教えてくれない、サーバー名の不一致文句ではなく、有効期限、古い証明書がまだあることを示します何とかロードされます。

可能な手がかり#2

http://gentlemanjoe.comのHTTP Server応答ヘッダーには、「Apache」ではなく「Andromeda」と表示されます。「アンドロメダ」の私のグーグルは、このサーバーにインストールされないメディアサーバータイプのプロジェクトを起動するので、これは私には奇妙に思えます(しかし、私はこれのいずれも設定しなかったので、確実にそれを言うことはできません、通常の管理者/開発者は休暇中です。私はただ友人のサイトを手伝っています。)また、httpd.confファイルには、「Andromeda」という文字列が含まれていません。だから、彼が使用しているMagento eコマースプラットフォームかもしれませんが、標準のApacheレスポンスヘッダーを置き換えるポイントは何でしょうか?


このエラーとは何ですか:RSAサーバー証明書CommonName(CN) `www.gentlemanjoe.com 'はサーバー名と一致しません!?
mdpc

www.gentlemanjoe.comがgentlemanjoe.comと一致しないと不平を言っているとは思いますが、サイトがまだ期限切れの証明書を使用している理由は説明していません。共通名/サーバー名のmistmatchエラーのみの場合、ブラウザのセキュリティ警告に反映されませんか?新しい証明書はexpiredとして表示されるべきではありませんが、名前mistmatchについて異なる警告が表示されますよね?
ジョーダンリーガー

回答:


17

Apacheの前に何かがあります。その設定を確認してください:

Listen 127.0.0.1:443
....
<VirtualHost 127.0.0.1:443>

localhostのみでリッスンしているため、インターネットクライアントはこのサービスに直接アクセスしていません。プロキシされている可能性があります。

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)があります。これが新しい証明書を必要とするサービスです。


はい!シェーン、ありがとう、それはとても論理的だった。これは大変だった。プロセスはnginxと呼ばれるプロキシサーバーであることが判明し、サーバーに関連付けられていることさえ知らなかったIPアドレスをリッスンし、HTTPSおよびHTTPリクエストをApacheに中継しました。最後の男がなぜこれが良いアイデアだと思ったのか、私には何の手掛かりもない。また、nginxでは、GoDaddyが提供した証明書を再フォーマットして、サーバー証明書と機関チェーンを特定の順序で1つのファイルに入れる必要がありました。とにかく、今すぐ動作します!ありがとうございました!
ジョーダンリーガー

2
@JordanRieger聞いてよかった!nginxは一般的にApacheよりも軽くて高速であると考えられているため、一部のリクエスト(たとえば静的コンテンツ)を内部で処理し、リクエストの特定のサブセットのみをApacheに渡す場合があります。すべてをApacheに送信するだけなので、あなたの言うとおりです。パフォーマンスの無駄です。
シェーンマッデン

私たちの場合、それはAWS ELBでした。
アクシェイ

0

この問題の一般的な原因は、Apacheの複数の実行中のインスタンスです。構成の変更は、(再)開始するプロセスによって取得されますが、要求は、古い構成で実行されている古いプロセスによって処理されます。

サービスを停止します。

service apache2 stop

サイトにまだアクセスできるかどうかを確認します。はいの場合、原因を特定しました。

今すぐ実行

ps aux | grep apache

実行中のapache2プロセスとそのPIDのリストが表示されます。それらをすべて強制終了します(注:このコマンドは、Apache Tomcatのように、名前/ユーザーなどにApacheが含まれる無関係なプロセスを返す場合もあります。強制終了しない場合があります)。

kill <pid>

ps auxを再度実行し、プロセスが実行されていないことを確認します。

サイトにアクセスできるかもう一度確認してください。すべきではありません。

今すぐApacheサービスを開始してください

service apache2 start

新しい証明書が提供されていることを確認します。

プロセスを強制終了したくない場合は、システムを再起動できます。同じ効果があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.