前言:
今日公司內部供客服所用之Server 經客服回報無法使用,連線檢查發現httpd無法正常啟用。
發現訊息如下:
一、
service 啟動時跳出下列訊息
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
看起來像是無法認得server name
於是重新設定/etc/hosts &
範例
127.0.0.1 servername servername.localdomain servername
再進入/etc/sysconfig/network file
編輯hostname ,儲存後,重新下一次指令 hostname=servername
同時再編輯 /etc/httpd/httpd.conf
加入 servername servername:80
範例:servername tty:80
儲存後 重啟網卡與httpd serverice
二、
這次不再出現 上述錯誤,是直接跳 httpd 啟動失敗
觀看/var/log/httpd/
error.log 記載
suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
查詢後發現 上述訊息代表的是 mod_nss 證書到期
於是轉向查詢nss log
/var/log/httpd/nss_error_log
[error] Certificate not verified: 'Server-Cert'
[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.
按照網路上所找到的資料,只需將/etc/httpd/conf.d/nss.conf文件,配置文件中有個如下配置,其實需要將SSL的Engine置為「off」就行了。(此設定為關閉 驗證證書過期時間)
另有一解法是說 gencert /etc/httpd/alias 更新證書即可,但尚未試過
最佳的方式,是重新產出新的證書(一張四年);
(產出新證書前,請務必先刪除舊資料庫的資料)
# 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: Thu Feb 07 07:02:53 2013
Not After : Tue Feb 07 07:02:53 2017
留言列表