在 Centos 6 中意外删除了 localhost.crt SSL - 我该怎么办?

在 Centos 6 中意外删除了 localhost.crt SSL - 我该怎么办?

所以我刚刚从 Digicert 获得了证书,并且由于 /etc/ssl/ 中还有其他未使用/旧文件,我将其标记并删除,并且还意外删除了 localhost.crt。

现在我无法启动我的 Web 服务器(仅当没有 SSL 时)。我该如何重新创建此 localhost.crt 文件?我是否需要创建一个新密钥并从 digicert 重新颁发我的证书?

答案1

您的 SSL 证书颁发机构应该会为您提供免费的更换或重新颁发。只需前往 digicert 并询问他们即可。

从服务器生成新的密钥文件并重新发布 SSL。确保新的 SSL 应仅为 SHA2。

答案2

此问题有两种解决方案:

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。

答案3

这些文件/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.keylocalhost.crt,并执行yum reinstall mod_ssl,那么安装后脚本将为您重新创建它们。

(我发布这个答案是因为搜索如何重新创建/etc/pki/tls/certs/localhost.crt引导我到这里,但正如其他人所说,如果你获得了由 CA 签名的证书,你就不再需要localhost.crtlocalhost.key文件了。)

答案4

您可以使用以下命令重新安装 ssl。它将重新生成 localhost.crt

yum-y 安装 mod_ssl

相关内容