by Devin Yang

建立於: 7年前 ( 更新: 7年前 )

前言

let's encrypt提供免費的憑證真的很棒,不過,三個月要更新一次憑證是不是有點麻煩,
本文介紹,如何透過getssl,產生多域名的SAN憑證設定,放入排程自動進行憑證更新。
非常簡單哦,六個步驟即可搞定。

註:在下方的過程中,我使用非root的權限進行設定,如果你需要使用root才能重啟您的nginx主機,
請自行調整您安裝的使用者,或者是web server的重啟指令。

步驟

1. 透過git下載gessl,並且存成scripts。
git clone https://github.com/srvrco/getssl scripts

2.第一次使用,執行如下指令
cd scripts
./getssl -c ccc.tc

請將上方哉名ccc.tc換成您自己的域名
就會在您的家目錄,建立.getssl的資料夾及ccc.tc的目錄了
creating main config file /home/devin_yang/.getssl/getssl.cfg
Making domain directory - /home/devin_yang/.getssl/ccc.tc
creating domain config file in /home/devin_yang/.getssl/ccc.tc/getssl.cfg

3.用vim編輯設定,簡單拷貝第二步顯示的路徑即可。
vim /home/devin_yang/.getssl/ccc.tc/getssl.cfg

4.以下的getssl.cfg設定僅供參考,請依您自己實際的主機目錄及憑證資料夾,進行調整。
#選取發送憑證的主機
CA="https://acme-v01.api.letsencrypt.org"
#額外的域名
SANS="www.ccc.tc, devin.ccc.tc, mail.ccc.tc"

#設定ACME路徑,因為我是安裝在dlaravel的環境,ccc為我的project目錄。
#記得要在public下,建立該目錄.well-known/acme-challenge
ACL=('/home/devin_yang/dlaravel/sites/ccc/public/.well-known/acme-challenge')
USE_SINGLE_ACL="true"

#設定憑證路徑
CA_CERT_LOCATION="/home/devin_yang/dlaravel/etc/ssl/cert.crt"
DOMAIN_CHAIN_LOCATION="/home/devin_yang/dlaravel/etc/ssl/fullchain.pem"
DOMAIN_PEM_LOCATION="/home/devin_yang/dlaravel/etc/ssl/privkey.pem"
#D-Laravel的nginx重載指令
RELOAD_CMD="bash -c 'cd /home/devin_yang/dlaravel; ./console reload'"

#設定主機類型
​​​​​​​SERVER_TYPE="https"
關於RELOAD_CMD,如果您並非使用D-Laravel(docker-compose環境),
例如: nginx,重載方式在nginx應該是nginx -s reload,或在舊版CentOS或RedHat的Apache上,應該可以用service httpd graceful
關於主機部份的相關設定及說明就不在說明了,本文我假定讀者已設定好了let's encrypt的憑證在主機上,只是要完成自動更新功能。

5.手動更新憑證,並進行nginx主機重啟
cd ~/scripts
 ./getssl ccc.tc

6.使用crontab放入排程每明檢查,自動進行更新
15 5 * * * /home/devin_yang/scripts/getssl -u -a -q

補充:如果需強制更新憑證,我們可以用-f參數,例如我的SAN又補了新的域名
getssl -f ccc.tc

關於nginx上的憑證設定方式,可以參考我這篇:
如何設定nginx上的HTTPS,取得Qualys的SSL A+評分
 

Tags: dlaravel

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


php,docker,dlaravel

我建立的phpenv容器環境簡單介紹

沒時間拍介紹影片,我就來隨便抓些畫面介紹我使用的容器環境deviny/phpenv。https://github.com/DevinY/phpenvphpenv算是我之前D-Laravel開源專案的進化版本,概念上延用了很多Dlaravel的操作方式。容器的更新上偏向使用者自行控制去Build自己的image,所以我不太會去更動版號了,其實D-Laravel的php版號,好像我也很久沒動啦:p 

dlaravel

D-Laravel 釋出 v1.1.5

因應Laravel 5.5推出了,剛好php也出了php 7.0.23及php 7.1.9版了。 D-Laravel使用的fpm版本也進行更新囉...只要調整您的docker-compose所定義的版本 即可使用最新的php囉...

dlaravel

使用docker in docker建立D-Laravel測試環境。

D-Laravel是一個極易使用並且極有彈性的Laravel開發環境,只要您是Mac的使用者,就算不懂Docker也可以透過他來建立Laravel的專案,進行開發,由於最近加入.env的功能新功能時,急者push,卻沒有完整測試,搞出了一堆新的Bug,所以,這次新增了一個新的dlaravel_test,bash的測試工具,透過doceker in docker的方式來跑測試。確保D-Laravel的每一次釋出都能是一個穩定的版本。