close

前言:

 

今日公司內部供客服所用之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

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 chengyu0701988 的頭像
    chengyu0701988

    chengyu0701988的部落格

    chengyu0701988 發表在 痞客邦 留言(0) 人氣()