2018年3月6日 星期二

HTTPS自動認證

又到了三個月過期一次的該死認證時間了,每過三個月就要頭痛一次說真的...
很煩!!!!

所以這次花時間看了一下,大概掌握自動重新認證的方式了,於是就來記錄一下

說是花時間研究了,其實也只是照著這個網頁的說明走了一趟,雖然滿好懂的但現在看到英文頭會痛,簡單記錄過程如下:

安裝:
沒什麼好說的,總之就是照著文件上的說明安裝
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot
執行:
可以透過以下指令直接執行:
$ sudo certbot certonly
執行後會有兩種執行模式可以選擇,一種是已經有webserver的"webroot",另一種則是"standalone",這次因為是已經蓋好server只是要重新認證所以直接選擇webroot,至於另一種就....以後再研究吧。
在webroot模式會要求輸入要認證的domain name以及目前web server的根目錄位置,輸入後程式會自動將domain name提交,接收到認證需要產生的檔案資訊後,將檔案建立到所輸入的web server根目錄中,然後透過遠端來存取認證檔案完成認證的動作。所以要確定web server根目錄中的檔案與資料夾(特別是"."開頭的資料夾)必須要能被遠端透過所輸入的domain name存取。
以ubuntu來說,產出的KEY依舊放在/etc/letsencrypt/live/{domain name}/下,然後我的nodejs因為權限的關係硬是無法讀取XDDD,暫時不想處理所以就改用root來執行server了(很懶)。
另外執行指令也可以直接這樣寫來快速執行: 
$ sudo certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is
上面的指令會使用webroot模式執行,-w 為webroot的根目錄,-d 為domain name
重新認證:
 根據說明,certbot"貌似"會自動重新認證,但看了一下文件好像又要自己加到crontab裡定期執行更新指令....到底是哪一種我也還沒搞清楚,總之我是先加到crontab了。
後過前面的指令完成的認證會被記錄下來,所以只要一行指令certbot就會將儲存的認證動作重新執行一次:
$ sudo certbot renew --dry-run
 這個指令會強制執行重新認證,即使我剛剛5分鐘前才認證過XDDD。但只要把後面的參數都拿掉,改成執行這樣:
$ sudo certbot renew
就會針對"30天以內即將過期的認證"進行重新認證,所以我是把這個指令加到了crontab裡面,希望這次可以一勞永逸不用再搞認證~
順便記錄一下crontab的檢視方式跟編輯方式,每次用都要查詢也不是辦法
檢視工作
$ crontab -l
編輯工作
$ crontab -e
工作的格式
分 時 日 月 周 指令
0 0 1 * * certbot renew
每個月1日0時0分執行certbot renew

以上!!希望這能對某些人產生一些幫助

所謂的"某些人"大部分指的是未來的我XDDD

沒有留言 :

張貼留言