Linux CentOS或Redhat Apache設置SSL安全Web服務器

每一次為Apache設置SSL,都覺得很頭痛,因為很久沒設置很快就忘記設置步驟,所以這一次設置順便做個筆記。

  1. 安裝相關軟件
    yum install mod_ssl openssl
  2. 生成SSL証書和密鑰(如只是開發環境,可以不用生成密鑰和憑証,只需使用預設的密鑰和憑証即可)
    # 生成密鑰 
    openssl genrsa -out ca.key 2048 
    
    # 生成憑証簽名申請 
    openssl req -new -key ca.key -out ca.csr
    
    # 生成自簽名憑証
    openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
    
    # Copy the files to the correct locations
    cp ca.crt /etc/pki/tls/certs
    cp ca.key /etc/pki/tls/private/ca.key
    cp ca.csr /etc/pki/tls/private/ca.csr

    注意:如果有啓用SELinux,請使用複製方式將密鑰和憑証複製到/etc/pki/tls/下。因為密鑰和憑証沒有設定好SELinux context,Apache會提示讀取不到密鑰和憑証。
    如果是使用移動檔案方式,亦可以使用以下指令把密鑰和憑証設定好SELinux context。

    # 設定 SELinux context
    restorecon -RvF /etc/pki

    修改Apache ssl.conf

    vi /etc/httpd/conf.d/ssl.conf
    

    修改ssl.conf內容

    SSLCertificateFile /etc/pki/tls/certs/ca.crt
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key

    重啓Apache

    /etc/init.d/httpd restart
  3. 設置Virtual Hosts(如沒有設置,可忽略此步驟)
    <VirtualHost *:80>
            <Directory /var/www/vhosts/yoursite.com/httpdocs>
            AllowOverride All
            </Directory>
            DocumentRoot /var/www/vhosts/yoursite.com/httpdocs
            ServerName yoursite.com
    </VirtualHost>

    加入VirtualHost之前,需要先加入這一句在最上方

    NameVirtualHost *:443
    <VirtualHost *:443>
            SSLEngine on
            SSLCertificateFile /etc/pki/tls/certs/ca.crt
            SSLCertificateKeyFile /etc/pki/tls/private/ca.key
            <Directory /var/www/vhosts/yoursite.com/httpsdocs>
            AllowOverride All
            </Directory>
            DocumentRoot /var/www/vhosts/yoursite.com/httpsdocs
            ServerName yoursite.com
    </VirtualHost>

    重啓Apache

    /etc/init.d/httpd restart
  4. 設置防火牆
    # 加入443規則
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    
    # 儲存規則
    /sbin/service iptables save
    
    # 列出所有規則
    iptables -L -v

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*

驗證碼 * Time limit is exhausted. Please reload CAPTCHA.

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料