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

Случайно удалить localhost.crt SSL в Centos 6 - что мне делать?

Итак, я только что получил сертификат, выпущенный Digicert, и поскольку в / etc / ssl / i были отмечены и удалены другие неиспользуемые / старые файлы, а также случайно был удален localhost.crt.

Теперь я не могу запустить свой веб-сервер (только без SSL). Как мне воссоздать этот файл localhost.crt? И мне нужно будет сделать новый ключ и получить сертификат от digicert повторно?

Есть два решения этой проблемы:

1) Вы можете восстановить самозаверяющий сертификат по умолчанию с помощью OpenSSL:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/localhost.key -out /etc/ssl/certs/localhost.crt

2) Вы можете выполнить поиск в файлах конфигурации Apache и заменить самозаверяющий сертификат новым сертификатом.

Эта команда сообщит вам, какие файлы конфигурации Apache ссылаются на файл localhost.crt:

grep -i -r localhost.crt /etc/httpd/

Пример вывода приведенной выше команды может быть таким:

/etc/httpd/conf.d/ssl.conf:SSLCertificateFile /etc/pki/tls/certs/localhost.crt

Это говорит нам заглянуть в /etc/httpd/conf.d/ssl.conf и обновить SSLCertificateFile, SSLCertificateKeyFile и SSLCertificateChainFile до их новых файлов сертификатов DigiCert.


Если у вас есть какие-либо проблемы или вопросы, звоните в службу поддержки DigiCert по телефону 1-801-701-9600.

Файлы /etc/pki/tls/certs/localhost.crt и /etc/pki/tls/private/localhost.key создаются сценарием постинсталляции mod_ssl пакет. Вы можете найти файл спецификации CentOS 7 здесь: https://git.centos.org/rpms/httpd/blob/c7/f/SPECS/httpd.spec (проверьте другие ветки для разных версий CentOS). Вот сценарий из CentOS 7:

%define sslcert %{_sysconfdir}/pki/tls/certs/localhost.crt
%define sslkey %{_sysconfdir}/pki/tls/private/localhost.key

%post -n mod_ssl
umask 077

if [ -f %{sslkey} -o -f %{sslcert} ]; then
   exit 0
fi

%{_bindir}/openssl genrsa -rand /proc/apm:/proc/cpuinfo:/proc/dma:/proc/filesystems:/proc/interrupts:/proc/ioports:/proc/pci:/proc/rtc:/proc/uptime 2048 > %{sslkey} 2> /dev/null

FQDN=`hostname`
if [ "x${FQDN}" = "x" -o ${#FQDN} -gt 59 ]; then
   FQDN=localhost.localdomain
fi

cat << EOF | %{_bindir}/openssl req -new -key %{sslkey} \
         -x509 -sha256 -days 365 -set_serial $RANDOM -extensions v3_req \
         -out %{sslcert} 2>/dev/null
--
SomeState
SomeCity
SomeOrganization
SomeOrganizationalUnit
${FQDN}
root@${FQDN}
EOF

Итак, если вы удалите оба localhost.key и localhost.crt, и делай yum reinstall mod_ssl, то сценарий postinstall воссоздает их для вас.

(Я отправляю этот ответ, потому что ищу, как воссоздать /etc/pki/tls/certs/localhost.crt приводит меня сюда, но, как говорили другие, если у вас есть сертификат, подписанный ЦС, вам не нужен localhost.crt и localhost.key файлов больше.)

издатель сертификата ssl должен предоставить вам бесплатную замену или перевыпуск. Просто зайдите в digicert и спросите их.

Сгенерируйте новые ключевые файлы с сервера и перевыпустите ssl. Убедитесь, что новый ssl должен быть только SHA2.

У меня была такая же проблема. Для CentOS 8 не было сертификата localhost по умолчанию, поэтому я запустил его, и он восстановил все сертификаты по умолчанию.

/usr/libexec/httpd-ssl-gencerts

Надеюсь, это поможет кому-то другому.

Вы можете просто переустановить ssl с помощью следующей команды. Это восстановит localhost.crt

yum -y установить mod_ssl