Обновленные сертификаты SSL и условия перезаписи, которые больше не работают для apache2

Я использую сервер Ubuntu 14.04 с Apache2 v2.4.7.

Недавно наш сайт получал ошибку от Chrome, говоря, что нам нужно обновить наши сертификаты. Я только что завершил это ранее на этой неделе, обновив сертификаты SSL, а затем перезапустив Apache. Через пару дней мой клиент вернулся и упомянул, что определенные изображения и файлы больше не доступны через их сервер отчетов. Сервер отчетов использовал HTTPS для доступа к изображениям и файлам.

В моем файле conf есть это, которое не изменилось с тех пор, как я унаследовал этот сервер:

<VirtualHost *:80>
    ServerName abc.example.com
    DocumentRoot /home/deployer/html/_abc/public
    RewriteEngine On

    RewriteCond %{HTTPS} off
    RewriteCond %{REQUEST_URI} !^/files/
    RewriteCond %{REQUEST_URI} !^/images/checksheets/
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName abc.example.com
    DocumentRoot /home/deployer/html/_abc/public
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite          ECD....C3-SHA:!DSS
    SSLHonorCipherOrder     on
    SSLCompression          off
    SSLCertificateFile /etc/ssl/ssl_certificate.crt
    SSLCertificateKeyFile /etc/ssl/abc_staging.key
    SSLCertificateChainFile /etc/ssl/IntermediateCA.crt
    # HSTS (mod_headers is required) (15768000 seconds = 6 months)
    Header always set Strict-Transport-Security "max-age=15768000"
    <Directory /home/deployer/html/_abc/public>
        AllowOverride all
        Options FollowSymLinks
        # -MultiViews
        #   Order allow,deny
        Require all granted
    </Directory>

Единственное, что я сделал на сервере, буквально было чтобы обновить ssl_certificate и IntermediateCAs и перезапустить Apache, поэтому я не уверен, что произошло. Последний раз сертификат SSL обновлялся, вероятно, около года назад, и способ получения изображений / файлов сервером отчетов не изменился. Я также довольно часто перезапускаю Apache, и раньше это никогда не было проблемой.

По прихоти, мой клиент создал новый отчет, используя http вместо https , и это, похоже, отлично работало.

Мой вопрос: что могло измениться, чтобы сервер внезапно перестал принимать https соединения для изображений / файлов?

РЕДАКТИРОВАТЬ: Это только запросы GET (действий POST / DELETE нет).

Кроме того, переход к изображению (или файлу) как https://abc.example.com/images/path/to/file.jpg с HTTPS полностью работает. Но когда сервер отчетов использует ту же ссылку, отображается пустая страница.

Журналы доступа Apache покажут указанную выше ссылку как попадание при прямой навигации, но когда сервер отчетов использует ее, и я перехожу к отчету, Apache журналы доступа вообще ничего не показывают.

3
задан 12 October 2018 в 17:02
3 ответа

Мы разобрались с этим. Хотя сервер Apache и был в порядке, очевидно, что ранее в файле сертификата был сохранен определенный фрагмент параметра DH. Этот фрагмент был добавлен, потому что сервер отчетов, который запрашивает изображения и файлы работает на Java 6. А Java 6 может обрабатывать только DH параметры 1024 бит.

Так что в моем новом ssl_certificate.crt, я добавил

-----BEGIN DH PARAMETERS-----
MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR
Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL
/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC
-----END DH PARAMETERS----- 

из http://httpd.apache.org/docs/current/ssl/ssl_faq. html#javadh

К сожалению, это понижает наш сертификат с A+ рейтинга до B, но я не могу обновить сервер Java с 6 до более нового.

Как только я добавил этот фрагмент в свой ssl-сертификат, сервер отчетов смог получить доступ к образам по https!

!
0
ответ дан 3 December 2019 в 06:54

Предложения по устранению неполадок:

  1. Подтвердите свою среду:

    • Сервер Ubuntu 14.04 с Apache2 v2.4.7.
    • Ваш httpd.conf настроен для обслуживания обоих HTTP ( : 80) и HTTPS (: 443).
    • Конфигурация вашего сертификата (опубликованная выше) верна, а файлы и (SSLCertificateFile и т. Д.) Существуют и не были «повреждены».
  2. Подтвердите описание проблемы:

    • «Раньше все работало» до того, как вы обновили свой сертификат SSL, «проблема» как-то связана с новым сертификатом.
    • Все пользователи, которые пытаются «получить отчеты» через https ( ПРИМЕР https://apache-server.com/myreport ) терпят неудачу - они просто видят «белый». Это правильно?
    • Те же пользователи могут успешно получать те же отчеты, если вместо этого используют http (ПРИМЕР: http://apache-server.com/myreport ). Это тоже правильно?
    • Есть ли что-нибудь "особенное" в отчетах? Например, это веб-приложение?
  3. Мне любопытно, ВСЕ https "сломаны" или просто "некоторые вещи" недоступны.

    Создайте тестовый файл (ПРИМЕР: /var/www/html/myreport/hello.html ) и проверьте, можете ли вы читать его одновременно с http и https.

  4. При тестировании используйте один (или оба) из этих инструменты на вашем ПК для анализа попытки браузера подключиться (и, таким образом, помочь определить конкретную точку сбоя):

  5. Отправьте ответ, что вы нашли.

PS :

Вот несколько дополнительных советов. В частности, «включить подробное ведение журнала»:

https://www.futurehosting.com/blog/troubleshooting-the-most-common-apache-problems-youll-encounter/

PPS:

Я бы НЕ отключать http, пока проблема не будет решена:

  • Это временное решение для тех людей, которым могут понадобиться отчеты.
  • Возможность сравнить поведение http и https поможет устранение неполадок.
1
ответ дан 3 December 2019 в 06:54

На вашем вы включаете HSTS. Это указывает браузеру внутренне переписывать каждый запрос домена на HTTPS. После этого,здесь нет смысла использовать RewriteCond% {REQUEST_URI}! ^ / files / , так как все уже должно быть безоговорочно переписано, что дает вам возможность упростить конфигурацию:

<VirtualHost *:80>
    ServerName abc.example.com
    Redirect permanent / https://abc.example.com/
</VirtualHost>

Проблема с пустой страницей не кажется проблемой проблема на стороне сервера, вообще вызванная вашим Apache. Тот факт, что вы можете получить доступ к URL-адресу с другого компьютера, в значительной степени это доказывает.

Сначала очистите все кеши на «сервере отчетов» и посмотрите, поможет это или нет. Подробностей о том, как работает этот «сервер отчетов», нет, но пустая страница может быть, например, результатом того, что не отображается кэшированное изображение URL-адреса HTTP на странице HTTPS из-за изменения политики смешанного содержимого. В таком случае согласованность между перенаправлением и политикой HSTS может предотвратить такое кеширование в будущем.

Кроме того, исправьте все http: // URL-адреса в своем контенте на https: // .

1
ответ дан 3 December 2019 в 06:54

Теги

Похожие вопросы