假期收到zabbix的警报,提醒不能浏览域名,向502举报。
因为放假前有新年休息,没有升级,可以清地基,这是升级装备带来的问题。连接到网络服务器的Ssh发现服务器连接和资源没有问题。是lnamp架构的一组URL,也就是nginx到Apache的反向代理。所以考虑到Apache的问题,重启httpd服务项目。
重新启动httpd服务项目时,启动失败,并且未发现任何错误。因此,我去查询日志文档,看到了以下错误:
tail -200 /var/log/httpd/error_log [TIME 2016] [error] SSL Library Error: -8181 Certificate has expired [TIME 2016] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.可以看到证书已经过期,得到一个解决方案,就是在nss.conf网络服务器上添加'NSSENFORCEVALIDCERTSOFF'来启动,也就是不验证证书过期时间。
Apache必须对https使用mod_nss的控制模块。我的理解是https必须安装mod_nss。这里有一个官方网站显示:
mod_nss模块使用网络安全服务(NSS) 安全库,通过安全套接字层(SSL)和传输层 安全(TLS)协议为ApacheWeb 服务器提供强大的加密功能。
我的解决办法是重新组建一个新的证书。
cd /etc/httpd/alias #删掉旧的证书 rm -f *.db #建立新证书 /usr/sbin/gencert /etc/httpd/alias > /etc/httpd/alias/install.log 2>&1 #查询证书信息内容 certutil -d /etc/httpd/alias -L -n Server-Cert Certificate: Data: Version: 3 (0x2) Serial Number: 3 (0x3) Signature Algorithm: PKCS #1 SHA-1 With RSA Encryption Issuer: "CN=Certificate Shack,O=example.com,C=US" Validity: Not Before: Mon Feb 15 02:05:10 2016 Not After : Sat Feb 15 02:05:10 2020现在可以看到证书有效期为四年,新组建的证书将于2020年到期。Httpd服务项目可以正常启动。
启动httpd服务项目后,发现主页仍然无法浏览,能够确认所有服务项目正常,启动设备没有问题。再次查询httpd的错误日志发现了一个新错误:
[TIME 2016] [error] SSL Library Error: -8038 SEC\_ERROR\_NOT\_INITIALIZED [TIME 2016] [error] NSS_Initialize failed. Certificate database: /etc/httpd/alias.百度发现是管理权限问题,授予了再次胜诉的权利。
chown root.apache /etc/httpd/alias/*.db chmod 0640 /etc/httpd/alias/*.db欢迎分享,转载请注明来源:内存溢出
评论列表(0条)