Обычно я неплохо разбираюсь в Apache и OpenSSL, но этот меня совершенно сбивает с толку. Я использую Apache 2.2.22 и OpenSSL 1.0.1 на сервере Ubuntu 12.04 LTS. У меня настроен виртуальный хост на основе IP, который перенаправляет все HTTP-запросы на HTTPS и использует строгую транспортную безопасность, чтобы поддерживать его в таком состоянии.
Я переношу сайт с сертификата, выданного внутренним центром сертификации, на сертификат, подписанный StartSSL. Текущий сертификат имеет 1024-битный ключ RSA, новый - 2048-битный ключ RSA. На сервере есть один или два других хоста SSL, каждый из которых использует 1024-битные ключи. Текущий сертификат работает отлично.
Ключи для обоих сертификатов находятся в одном каталоге, принадлежат root и с 600
разрешения (каталог 710
). Оба сертификата находятся в другом каталоге, принадлежат root и с 644
разрешения (каталог имеет 755
). (Например, оба ключа находятся в /var/ssl/keys
и оба сертификата находятся в /var/ssl/certs
.)
Однако, когда я изменяю конфигурацию для использования нового сертификата (это только изменить, я не обновляю имя хоста или что-то еще) Apache отказывается запускаться, выдавая ошибку «не удается записать 'случайное состояние'». Я проверил, и у меня нет ни одного (корневого или другого) .rnd
файлы болтаются. Если я вернусь к 1024-битному сертификату, Apache запустится отлично, и все будет нормально.
Я наткнулся эта запись в FAQ, заявив, что Apache не поддерживает 2048-битные ключи, но я также наткнулся на это сообщение в блоге заявив, что запись в FAQ должна быть старой (многие записи кажутся довольно древними), поскольку она отлично работает на Apache 2.2.11.
Может ли кто-нибудь предложить, почему Apache может не работать с новым сертификатом?