next up previous contents
Next: Let's Encrypt 憑證更新 Up: Let's Encrypt Previous: Let's Encrypt 憑證申請   Contents

CentOS/DYW 6 Linux 使用 Let's Encrypt

  1. CentOS 6 預設 python 版本為 2.6,Let's Encrypt 使用 python2.7 所以必須另外安裝,DYW Linux 已將相關套件納入 repo server 中,只要設定好即可使用。
    [root@dywnb ~]# head /etc/yum.repos.d/dywang.repo 
    [dywang]
    name=De-Yu Wang
    mirrorlist=http://dywang.csie.cyut.edu.tw/centos6
    enabled=1
    gpgcheck=0
    
  2. letscrypt-auto 程式會偵測 redhat 版本,使用 DYW Linux 必須將 /etc/redhat-release 連結到 /etc/dywang-release。
    [root@dywang ~]# ln -s /etc/dywang-release /etc/redhat-release
    
  3. letscrypt-auto 程式會偵測 redhat 版本,使用 DYW Linux 必須將 /etc/redhat-release 連結到 /etc/dywang-release。
    [root@dywang ~]# ln -s /etc/dywang-release /etc/redhat-release
    
  4. 安裝套件。
    [root@dywang ~]# yum install -y tcl tk python27-libs python27 tix python27-setuptools tkinter27 \
    python27-devel python27-virtualenv python27-tools python27-pip python-setuptools python-pip \
    python-virtualenv perl-TermReadKey perl-Error perl-Git2u git2u libffi-devel libcom_err \
    libtalloc libtevent libtdb keyutils-libs libsepol libselinux libsepol-devel libselinux-devel \
    keyutils-libs-devel libcom_err-devel krb5-devel libsmbclient libselinux-utils libselinux-python \
    openssl-devel libgcc libstdc++ cpp libgomp gcc libstdc++-devel dialog
    
  5. 取得 letsencrypt 程式。
    [root@dywang ~]# git clone https://github.com/letsencrypt/letsencrypt
    
  6. 也可以直接下載 zip 壓縮檔。
    [root@dywang ~]# wget https://github.com/letsencrypt/letsencrypt/archive/master.zip
    
  7. 不管是使用 git 還是 wget 下載 master.zip 解壓縮,都檢查 python 版本判斷是不是以 python2.7 最優先,不是就如下修改之。
    [root@ait letsencrypt]# diff -uN letsencrypt-master.orig/letsencrypt-auto letsencrypt-master/letsencrypt-auto 
    --- letsencrypt-master.orig/letsencrypt-auto	2015-11-14 09:45:53.000000000 +0800
    +++ letsencrypt-master/letsencrypt-auto	2015-11-17 10:56:16.527575393 +0800
    @@ -83,10 +83,10 @@
     }
     
     DeterminePythonVersion() {
    -  if command -v python2 > /dev/null ; then
    -    export LE_PYTHON=${LE_PYTHON:-python2}
    -  elif command -v python2.7 > /dev/null ; then
    +  if command -v python2.7 > /dev/null ; then
         export LE_PYTHON=${LE_PYTHON:-python2.7}
    +  elif command -v python2 > /dev/null ; then
    +    export LE_PYTHON=${LE_PYTHON:-python2}
       elif command -v python > /dev/null ; then
         export LE_PYTHON=${LE_PYTHON:-python}
       else
    
  8. 因為執行 letsencrypt-auto 時必須先關閉 httpd,為盡量縮短網站關閉時間,先設定 apahe ssl 憑證及金鑰位置,待取得憑證及金鑰馬上可以重新啟動。
    [root@dywang ~]# grep ^SSLCertificate /etc/httpd/conf.d/ssl.conf 
    SSLCertificateFile /etc/letsencrypt/live/dywang.csie.cyut.edu.tw/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/dywang.csie.cyut.edu.tw/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/dywang.csie.cyut.edu.tw/chain.pem
    
  9. 執行 letsencrypt-auto 前必須先關閉 httpd 服務。
    [root@dywang ~]# /etc/init.d/httpd stop
    
  10. 進入 letsencrypt 目錄執行 letsencrypt-auto 程式,指定 domain 及 email,certonly 只取得憑證不進行 apache 設定。 若還沒收到申請加入 Let's Encrypt Beta 成員的 domain,執行後會出現
    [root@dywang ~]# cd letsencrypt
    [root@dywang letsencrypt]# ./letsencrypt-auto  --agree-dev-preview \
    --server https://acme-v01.api.letsencrypt.org/directory \
    -d dywang.csie.cyut.edu.tw --email abc123@csie.cyut.edu.tw \
    certonly
    
    Version: 1.1-20080819
    Version: 1.1-20080819
    
    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at
       /etc/letsencrypt/live/webmail.csie.cyut.edu.tw/fullchain.pem. Your
       cert will expire on 2016-02-23. To obtain a new version of the
       certificate in the future, simply run Let's Encrypt again.
    
  11. 成功後憑證與金鑰存放在 /etc/letsencrypt/live/YOUR-DOMAIN:
    [root@dywang ~]# ll /etc/letsencrypt/
    accounts/ archive/  csr/      keys/     live/     renewal/  
    [root@dywang ~]# ll /etc/letsencrypt/live/dywang.csie.cyut.edu.tw/
    total 0
    lrwxrwxrwx. 1 root root 47 Nov 24 12:48 cert.pem -> ../../archive/dywang.csie.cyut.edu.tw/cert1.pem
    lrwxrwxrwx. 1 root root 48 Nov 24 12:48 chain.pem -> ../../archive/dywang.csie.cyut.edu.tw/chain1.pem
    lrwxrwxrwx. 1 root root 52 Nov 24 12:48 fullchain.pem -> ../../archive/dywang.csie.cyut.edu.tw/fullchain1.pem
    lrwxrwxrwx. 1 root root 50 Nov 24 12:48 privkey.pem -> ../../archive/dywang.csie.cyut.edu.tw/privkey1.pem
    
  12. 若還沒收到申請加入 Let's Encrypt Beta 成員的 domain,執行會出現以下訊息:
    Error: unauthorized :: The client lacks sufficient authorization :: Error creating new authz :: Name is not whitelisted
    
  13. 重新啟動 httpd 服務。
    [root@dywang ~]# /etc/init.d/httpd start
    



2017-10-27