之后yum update
,启动 apache 时出现错误,在/var/log/httpd/error_log
:
[notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[error] SSL Library Error: -8181 Certificate has expired
[error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.
现在我暂时让NSSEnforceValidCerts off
网站nss.conf
运行。我该如何修复错误?
答案1
似乎mod_nss
安装时就创建了一个证书。
此证书已过期,导致无法重新启动httpd
(Apache)。
你真的用吗mod_nss
?
如果您不使用,mod_nss
那么最好的办法就是卸载该软件包。
不过你还有一些其他选择:
删除(这将导致
nss.conf
无法加载)。/etc/httpd/conf.d
mod_nss
卸载/重新安装您的 nss rpm 模块。重新安装后将生成一个新证书,您的问题将在几年内消失:
rpm -e mod_nss rm /etc/httpd/alias/* yum install mod_nss service httpd restart
答案2
对于任何正在阅读本文的人来说,您不需要删除 mod_nss。您只需重新颁发证书即可:
备份当前别名文件夹
mv /etc/httpd/别名 /etc/httpd/alias_2023_10_23创建新的别名文件夹
mkdir /etc/httpd/别名生成新证书,当要求输入密码时按回车键(无密码)
gencert /etc/httpd/别名/验证新证书是否有效
certutil -d /etc/httpd/alias -L -n 服务器证书更改以下文件的组所有权:
chown root:apache /etc/httpd/alias/secmod.db
chown root:apache /etc/httpd/alias/key3.db
chown root:apache /etc/httpd/alias/cert8.db
ln -s /usr/lib64/libnssckbi.so libnssckbi.so
- 更改文件权限
chmod 640 /etc/httpd/alias/secmod.db
chmod 640 /etc/httpd/alias/key3.db
chmod 640 /etc/httpd/alias/cert8.db
- 重启 Apache
systemctl 启动 httpd
答案3
已Server-Cert
过期,检查人:
certutil -d /etc/httpd/alias -L -n Server-Cert
目前,通过从 中mod_nss
删除可以禁用。nss.conf
/etc/httpd/conf.d/
答案4
dnf remove mod_nss
rm /etc/httpd/alias/*
dnf install mod_nss
systemctl restart httpd
重要的是在重新安装之前删除 /etc/httpd/alias/*