В процессе настройки бесплатного SSL от StartSSL для ownCloud на Apache/2.4.6 (CentOS 7), столкнулся с ошибкой которая мешала запустить Apache.
Фрагмент лог файла Apache:
... [Sat Oct 10 20:05:54.434651 2015] [ssl:emerg] [pid 25398] AH02241: Init: Unable to read server certificate from file /etc/ssl/certs/test.crt [Sat Oct 10 20:05:54.434711 2015] [ssl:emerg] [pid 25398] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag [Sat Oct 10 20:05:54.434739 2015] [ssl:emerg] [pid 25398] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=X509) [Sat Oct 10 20:05:54.434752 2015] [ssl:emerg] [pid 25398] AH02312: Fatal error initialising mod_ssl, exiting. ...
Обратите внимание на: «AH02241: Init: Unable to read server certificate from file /etc/ssl/certs/test.crt»
В процессе траблшутинга и поиска информации по данной ошибке, стало понятно, что проблема в содержимом (формате) файла сертификата, но когда я просматривал файл сертификата с помощью mc (Midnight Commander), то не находил ни каких ошибок. Содержимое файла, было абсолютно таким же, что и сгенерил StartSSL.
Потупил я ещё некоторые время…
Далее, я решил с помощью mc не просмотреть (F3), а отредактировать (F4) файл сертификата (зачем я это делал, уже не помню). И что я вижу:
Тут то всё стало ясно… ^M это дополнительные символы перевода строки в Windows. При просмотре в mc их не было видно, а при редактировании они появились.
Как же это произошло?
А произошло это очень просто. StartSSL генерит сертификат и приватный ключи, а далее нам необходимо используя Copy/Past перенести их в файлы.
Для Past я использовал Notepad++ , а у него по умолчанию используется формат «Dos/Windows». Если в Notepad++ включить «Отображение всех символов» (1) то мы увидим лишние символы «CR» (2).
Нужно сохранить файл в формате «Unix». Для этого правой кнопкой мыши нажимаем на названии текущего формата «Dos/Windows» (3) и выбираем «Unix».
Лишние символы исчезли. Сохраняем файл сертификата и проделываем такую же процедуру и с файлом ключа.
Данная ошибка была весьма глупа и я на неё потратил много времени, но ни кто не застрахован от ошибок. Может кому-то, данная статья поможет и он затратит значительно меньше времени на устранение ошибки.
Конфиг SSL виртуального хоста в Apache
И напоследок выложу рабочий конфиг SSL/HTTPS виртуального хоста Apache.
<VirtualHost *:443> ServerName your.domain.local:443 ServerAdmin you@domain.local DocumentRoot /var/www/html/owncloud ErrorLog /var/log/httpd/owncloud_error_log <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" </IfModule> SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /etc/ssl/certs/ssl.crt SSLCertificateKeyFile /etc/ssl/certs/ssl.key SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem CustomLog /var/log/httpd/owncloud_ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
Ссылки
- Бесплатные сертификаты SSL Class 1 на год: StartSSL
- Статья с описанием процесса получения сертификатов: Бесплатный HTTPS сертификат (http://seo-guide.ru/https-ssl.html)
Похожие записи...
Latest posts by Андрей Торженов (see all)
- Куда переходить с Helpdesk OTRS? Альтернативы OTRS - 27/02/2022
- Windows 11. Не работает обновление, не входит в OneDrive, OneNote и другие Microsoft сервисы - 29/01/2022
- Попытка взлома Mikrotik? - 24/12/2021
- После обновления до Proxmox 7.1 не запускаются виртуальные машины - 28/11/2021
- libflashplayer.so пропатченный от Time bomb - 11/02/2021