Я создал закрытый ключ, 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' не существует или пуст
[ЧТО Я ПЫТАЛСЯ]
Я попробовал следующие решения, найденные в ресурсах 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., но ваш сертификат самоподписан.
Проверьте еще раз свои ресурсы. Тебе нужно:
Все они должны быть в читаемом пути и в читаемых разрешениях.
В вашей конфигурации apache вам нужно что-то вроде этого
SSLEngine on
SSLCertificateFile /path/to/www.licweb.com.crt
SSLCertificateKeyFile /path/to/www.licweb.com.key
SSLCertificateChainFile /path/to/ca.crt
Вам не нужен ca.key