[心得] CentOS 6.8 + Let’s Encrypt SSL +Apache + WordPress 全紀錄

今天端午節,下雨閒閒沒事做 就來實裝Let’s Encrypt SSL憑證

系統環境

指令 cat /etc/centos-release 印出 CentOS release 6.8 (Final)

其實去年也有試著裝過Let’s Encrypt SSL憑證 但是沒有成功,主要是在安裝的過程中 一直重覆申請憑證就被擋了…

輸入網址即可查詢 Let’s Encrypt 申請紀錄的資訊 crt.sh Certificate Search

目前Let’s Encrypt SSL憑證安裝已經非常簡單 只需下載官網提供的安裝程式即可 去年試裝時用了一堆第三方的一鍵安裝,搞得被封鎖好幾個月…

首先來certbot.eff.org 指定安裝環境

我的是Centos6 +Apache

就會顯示完整的安裝流程!!!

這邊要注意的是 在執行 certbot-auto –apache certonly 就算是用root登入也要使用 sudo 我的完整指令 sudo ./certbot-auto –apache certonly –cert-name smile.hsu.cc -d smilehsu.cc,www.smilehsu.cc 在網路上google很多Let’s Encrypt SSL 安裝文 寫到裝好憑證後就結束了… 網址是不會自動加綠鎖頭的!

接下來要設定 httpd 的conf檔 先修改 /etc/httpd/conf/httpd.conf NameVirtualHost *:443 再來修改 /etc/httpd/conf.d/ssl.conf

ServerName *:443

    ServerAdmin [email protected]
    DocumentRoot /var/www/html/wordpress
    ServerName smilehsu.cc
    ErrorLog logs/smilehsu.cc-error_log
    CustomLog logs/smilehsu.cc-access_log common
    
        AllowOverride All
    
        SSLEngine on
        SSLCertificateFile "/etc/letsencrypt/live/smile.hsu.cc/cert.pem"
        SSLCertificateKeyFile "/etc/letsencrypt/live/smile.hsu.cc/privkey.pem"
        SSLCertificateChainFile "/etc/letsencrypt/live/smile.hsu.cc/chain.pem"


    ServerAdmin [email protected]
    DocumentRoot /var/www/html/wordpress
    ServerName www.smilehsu.cc
    ErrorLog logs/smilehsu.cc-error_log
    CustomLog logs/smilehsu.cc-access_log common
    
        AllowOverride All
    
        SSLEngine on
        SSLCertificateFile "/etc/letsencrypt/live/smile.hsu.cc/cert.pem"
        SSLCertificateKeyFile "/etc/letsencrypt/live/smile.hsu.cc/privkey.pem"
        SSLCertificateChainFile "/etc/letsencrypt/live/smile.hsu.cc/chain.pem"

如果沒問題的話重新restart httpd應該是OK的 接下來,打開網站後台 把預設的網址改成https://smilehsu.cc 退出後台,看看首頁有沒有變成綠鎖頭 結果首頁還不是綠鎖頭,打開其他文章頁面 發現有些已經是綠鎖頭,但有些不是 到這邊已經可以確定SSL憑證已經正常運作 目前的問題出現在wordpress身上 用chrome檢查不是綠鎖頭的頁面錯誤訊息 發現網站的圖片尚未更改成https:// 這邊有三種方法可以解決: 1.手動編輯文章頁面,將所有的圖片連結改成https:// (一開始我就是用這種最笨的方法) 2.用phpmyadmin直接修改資料庫

UPDATE tmp479d8b_posts SET guid = REPLACE (
guid,
‘http://smilehsu.cc’,
‘http://test.smilehsu.cc’);

3.安裝wordpress外掛 Search Rexge (手動修改到一半,受不了了,求助google大神給的答案)

最後Let’s Encrypt SSL憑證有效期限是90天,所以需要renew certbot.eff.org已經有提供renew的方法 這邊提供其他的方式 auto_renew.sh

letsencrypt_path="/root/"
log_file="/var/log/ssl-auto-renew.log"
#開始更新憑證
service httpd stop
$letsencrypt_path/certbot-auto renew  > $log_file
echo "Renew time:" >> $log_file
date >> $log_file
service httpd start

設定每天早上6點執行一次 crontab -e 0 6 /1 * sh /root/auto_renew.sh


備註: 1.很久沒花那麼多時間打文章了 全拜換新筆電的關係…XDD 2.將預設編輯器改成nano export EDITOR=nano 3.資料引用來源: 1.WordPress Search Regex外掛,批次修改所有文章的內容,一鍵快速取代 2.安裝綠色鎖頭後,如何批次修改內文網址 3.[WP外掛]如何批次修改MySQL中的資料 4.【CentOS6/Apache】安裝 Let’s Encrypt 憑證 5.如何使用certbot自動更新SSL憑證 (CentOS 7, CentOS 6, Ubuntu) 6.LETSENCRYPT 自動更新憑證