Назад | Перейти на главную страницу

Проблемы с переключением Apache на использование нового сертификата SSL

В настоящее время у меня есть веб-сайт под управлением Ubuntu Linux и Apache 2.0, который использует сертификат SSL, выпущенный GoDaddy. Поскольку GoDaddy меня в целом не впечатлил, я решил получить сертификат SSL от другого поставщика, но у меня возникли проблемы при попытке изменить конфигурацию Apache для использования нового сертификата.

Настройки SSL для моей исходной конфигурации Apache выглядят так:

SSLEngine on
SSLProtocol all
SSLCertificateFile /etc/apache2/ssl/store.fatcatsoftware.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/fatcatstore.key
SSLCertificateChainFile /etc/apache2/ssl/gd_intermediate_bundle.crt
SSLProxyEngine on

Я установил новый сертификат SSL и изменил Apache на следующее:

SSLEngine on
SSLProtocol all
SSLCertificateFile /etc/apache2/ssl_geotrust/store.fatcatsoftware.com.crt
SSLCertificateKeyFile /etc/apache2/ssl_geotrust/store.fatcatsoftware.com.key
SSLProxyEngine on

Я дважды и трижды проверил все пути, и все они верны. Однако, когда я перезапускаю Apache и пытаюсь загрузить веб-сайт, я получаю сообщение об ошибке от веб-браузера о том, что сертификат был подписан неизвестным органом. Однако действительно странно то, что в нем также говорится, что сертификат был выпущен GoDaddy, поэтому похоже, что Apache каким-то образом даже не использует новый сертификат, хотя файл конфигурации указывает прямо на него. Я даже дважды проверил файл сертификата, используя openssl x509 -noout -text -in server.crt, и он проверяет, что сертификат на этом пути действительно является недавно установленным.

В качестве дополнительного теста я попытался взять те же файлы сертификатов / ключей и установить их на моем собственном компьютере под управлением OS X. Я настроил файл конфигурации Apache так же, как и на реальном сервере, и отредактировал / etc / hosts так, чтобы набрать в моем доменном имени будет перенаправляться на localhost, чтобы избежать несоответствия доменного имени при загрузке сайта. Когда я пробую эту настройку, все работает отлично! Так что, конечно, не похоже, что сам сертификат виноват.

Единственные существенные различия между этими двумя настройками: а) в OS X установлен Apache 2.2 вместо 2.0 и б) на веб-сайте Apache действует как прокси-сервер для беспородного кластера, запускающего приложение Rails за кулисами, тогда как я этого не делаю. У меня нет ничего из этого настроено на моей машине OS X. Я просмотрел все настройки mongrel / Rails, которые смог найти, но не нашел ничего, что могло бы быть связано с SSL. Насколько я могу судить, только Apache отвечает за работу с SSL.

На данный момент я полностью озадачен. Единственное, о чем я могу думать, это то, что где-то на каком-то уровне что-то кэшируется, но, черт возьми, я могу это найти. Я даже попытался отключить SSLSessionCache в Apache, но это не имело никакого значения. У кого-нибудь есть предложения попробовать что-то новое?

Трижды проверьте, что у вас нет другого виртуального хоста где-нибудь в файлах конфигурации, который все еще использует старый сертификат. Особенно проверьте различные подключаемые каталоги (/etc/apache.d), в которых вы могли настроить виртуальный хост и забыть о нем.

Также трижды проверьте, нет ли где-то другого файла httpd.conf, который действительно просматривает apache, особенно если вы не тот, кто настраивал систему в первую очередь.