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

Apache: SSLCertificateFile: файл не существует или пуст

Я создал закрытый ключ, CSR и CRT с помощью приведенных ниже команд для запуска веб-сайта с использованием HTTPS в Apache 2.4.6. Операционная система - Cent OS 7.

// To generate a Private Key
1. openssl genrsa -des3 -out www.licweb.com.key 1024

// To generate CSR
2. openssl req -new -key www.licweb.com.key -out www.licweb.com.csr

// To generate CRT
3. openssl x509 -req -days 365 -in www.licweb.com.csr -signkey www.licweb.com.key -out www.licweb.com.crt

Теперь я ссылаюсь на созданные выше файлы в моем httpd.conf файл. Но после этого, когда я пытаюсь ПЕРЕЗАПУСТИТЬ Apache, я получаю следующую ошибку:

ОШИБКА: SSLCertificateFile: файл '/var/www/html/licweb/www.licweb.com.crt' не существует или пуст

  1. Путь правильный.
  2. Файл также существует.
  3. В файле даже есть данные, поэтому он не пустой.

[ЧТО Я ПЫТАЛСЯ]

Я попробовал следующие решения, найденные в ресурсах Google:

Решение 1:

Выполнение команды конфигурация apachectl который работает нормально.

Решение 2:

Восстановление SELinux с помощью следующих команд:

1. sudo restorecon -Rv /etc/pki/tls/certs/ 
2. chcon --reference=/etc/pki/tls/private/localhost.key /etc/pki/tls/private/ca.key

Решение 3:

chcon -t cert_t /etc/pki/tls/private/my.key

Но ни одно из Решений не работает. Я все еще получаю ту же ошибку.


Думаю, даже с разрешениями все в порядке:

ls -l www.licweb.com.key
-rwxrwxrwt. 1 root root 963 Jul 17 10:39 www.licweb.com.key

Я не могу придумать другого решения. Кто-нибудь знает, что происходит не так или что я делаю не так? Любая помощь будет высоко оценена. Спасибо.

Обратите внимание, что процитированное вами сообщение относится к файлу сертификата /var/www/html/licweb/www.licweb.com.crt, а все, что вы упоминаете после «ЧТО Я ПЫТАЛ», относится к ключевому файлу.

Также обратите внимание, что ключевой файл не должен иметь указанных вами разрешений. Разрешения для ключевого файла должны быть: root-владелец и режим 600. Многие приложения, читающие ключевые файлы, проверяют, не разрешает ли этот режим доступ другим пользователям. Таким образом, разрешения для ключа также вызовут ошибку, но это будет другая ошибка.

В решениях, которые вы пробовали, ключи находятся в / etc / pki / tls, а сообщение об ошибке относится к / var / www / html / licweb. Также упоминается ключ ca., но ваш сертификат самоподписан.

Проверьте еще раз свои ресурсы. Тебе нужно:

  • www.licweb.com.key
  • www.licweb.com.crt (или .pem)
  • ca.crt

Все они должны быть в читаемом пути и в читаемых разрешениях.

В вашей конфигурации apache вам нужно что-то вроде этого

SSLEngine on
SSLCertificateFile /path/to/www.licweb.com.crt
SSLCertificateKeyFile /path/to/www.licweb.com.key
SSLCertificateChainFile /path/to/ca.crt

Вам не нужен ca.key