Linux中安裝Let’s Encrypt自動更新,並產生SSL憑證,並加入到apache中

步驟

  1. 於Linux中安裝 Let’s Encrypt SSL產生器
  2. 產生 abc.com.tw 的SSL並設定自動更新
  3. 於apache中設定VirtualHost ,並指定Let’s Encrypt產生的SSL憑證路徑

安裝 Let’s Encrypt:

使用Let’s Encrypt工具產生SSL,並自動更新的話,需要安裝自動更新工具 certbot。
你可以在SSH使用以下指令安裝 certbot:

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot python3-certbot-apache

產生 SSL 憑證:

接下來,你需要使用 certbot 產生 SSL 憑證。
於SSH中使用指令來產生 EX: abc.com.tw 的 SSL 憑證

sudo certbot --apache -d abc.com.tw

設定Apache的VirtualHost,加入SSL憑證路徑

一般來說,certbot 應該會自動檢查你的 Apache 設定,並產生 abc.com.tw 的 SSL 憑證路徑附加上去。
如果沒有或是你沒有設定過VirtualHost(虛擬主機),你可以自己加入VirtualHost(虛擬主機)設定到 httpd.conf 中,並設定SSL憑證路徑。

打開你的Apache設定檔httpd.conf,在最下新增:

<VirtualHost *:80>
  ServerName abc.com.tw
 ServerAlias www.abc.com
  Redirect / https://abc.com.tw/
</VirtualHost>

<VirtualHost *:443>
  ServerName abc.com.tw
  ServerAlias www.abc.com
  DocumentRoot /var/www/abc.com
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/abc.com.tw/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/abc.com.tw/privkey.pem
</VirtualHost>

上面的範例,當使用者輸入 http://abc.com.tw 時,就會被重定向到 https://abc.com.tw
SSLCertificateFile / SSLCertificateKeyFile則是分別指定Let’s Encrypt所產生的憑證路徑

DocumentRoot 為你的網站存放路徑,依據需求提整即可

設定自動更新

使用 certbot 在每週自動檢查憑證有效期,並於到期前自動續簽憑證更新,指令如下:

sudo certbot renew --dry-run

還可以透過排程,每日檢查憑證並自動更新,使用SSH輸入指令開啟crontab

crontab -e

然後加入這段指令

0 3 * * 0 /usr/bin/certbot renew --quiet

這個範例會在每天凌晨3:00執行檢查,如果要改變檢查時間,你可以調整前面的 0 3 * * 0的3,數字是24H制度,如果要改成下午4點,你可以改成 0 16 * * 0

以上就是如何自動更新憑證並設定apache的步驟