使用acme.sh擼一個免費(fèi)且自動更新的HTTPS證書

原文: https://www.fengxianqi.com/index.php/archives/128/

前言

一直想擼一下https瓣窄,最近剛好有點(diǎn)空尝胆,就實(shí)現(xiàn)了一下桩皿。之前看過一篇教你快速擼一個免費(fèi)HTTPS證書的文章霞捡,通過Certbot來管理Let's Encrypt的證書,使用前需要安裝一堆庫苫幢,覺得不太友好。所謂條條大路通羅馬垫挨,肯定還有其他方法可以做這個事情韩肝。

經(jīng)過一番研究,發(fā)現(xiàn)了 acme.sh 這個庫棒拂,這個是用Shell腳本編寫的伞梯,不需要安裝其他東西玫氢,比較純凈,覺得比較適合自己谜诫,記錄一下過程漾峡。

準(zhǔn)備工作

  1. 一個已解析好的域名(可以用http來訪問)。
  2. 開啟服務(wù)器的443端口防火墻喻旷。

步驟

一生逸、安裝acme.sh

curl https://get.acme.sh | sh

這個命令后會將acme.sh安裝到~/.acme.sh/目錄下
重新載入~/.bashrc

source ~/.bashrc 

二、生成證書

acme.sh  --issue -d www.your-domin.com  --webroot  /srv/your-domin.com/

這個命令的意思是用http方式將www.your-domin.com生成一個證書且预,/srv/your-domin.com/是你的網(wǎng)站根目錄槽袄。(這個過程中acme.sh 會全自動的生成驗(yàn)證文件, 并放到網(wǎng)站的根目錄, 然后自動完成驗(yàn)證. 最后又自動刪除驗(yàn)證文件.)

三、安裝或copy證書到nginx目錄

默認(rèn)生成的證書都放在安裝目錄下: ~/.acme.sh/锋谐,這個目錄一般來說不能讓nginx或Apache直接使用遍尺。所以我們需要將證書放到一個指定的目錄,習(xí)慣是放在/etc/nginx/ssl/目錄下涮拗。acme提供了--installcert來安裝證書乾戏,只需指定目標(biāo)位置, 然后證書文件會被copy到相應(yīng)的位置。
先確保存在/etc/nginx/ssl/目錄

mkdir /etc/nginx/ssl

copy證書并指定nginx reload命令

acme.sh  --installcert  -d  www.your-domin.com   \
        --key-file   /etc/nginx/ssl/www.your-domin.com.key \
        --fullchain-file /etc/nginx/ssl/fullchain.cer \
        --reloadcmd  "service nginx force-reload"

service nginx force-reload是為了在讓acme自動更新時候能夠重啟nginx使得證書生效三热。執(zhí)行完命令可以在/etc/nginx/ssl/看到多了www.your-domin.com.keywww.your-domin.com.cer的文件鼓择。

四、生成 dhparam.pem 文件

openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

這一步不是必須就漾,但最好加上呐能,后面配置好后會通過ssllabs.com 來驗(yàn)證一下,如果這一步ssl_dhparam 未配置抑堡,將導(dǎo)致 ssllabs.com 的評分降到 B摆出。A+是最好。

五夷野、配置nginx

證書已安裝完畢懊蒸,接下來就是讓nginx來使用這個證書了。由于我這個服務(wù)器有幾個站點(diǎn)悯搔,而目前只是一個站點(diǎn)配置了證書骑丸,因此只修改當(dāng)前站點(diǎn)的conf即可

server {
    listen       80;
    server_name www.your-domin.com;
    listen       443 ssl http2 default_server;
    listen       [::]:443 ssl http2 default_server;
    ssl_certificate /etc/nginx/ssl/www.your-domin.com.cer;
    ssl_certificate_key /etc/nginx/ssl/www.your-domin.com.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ...
}

ssl_prefer_server_ciphers on; 這個配置能提高證書的評分。
ssl_dhparam /etc/nginx/ssl/dhparam.pem; 能提高證書評分妒貌,這個文件是在第四步時生成的通危,若沒有做則不需要寫這句。
nginx -t驗(yàn)證一下nginx配置是否正確灌曙,然后systemctl restart nginx重啟一下nginx菊碟,就可以用https://www.your-domin.com測試一下你的站點(diǎn)啦。

六在刺、證書更新

Let's Encrypt 的證書有效期是 90 天的逆害,需要定期重新申請头镊,不過acme在安裝的時候就已經(jīng)設(shè)置了自動更新,所以這一步不用關(guān)心魄幕,很省心相艇。
這里了解一下acme.sh的自動更新:安裝acme時會自動為你創(chuàng)建 cronjob, 每天 0:00 點(diǎn)自動檢測所有的證書, 如果快過期了, 需要更新, 則會自動更新證書.
查看任務(wù)

# crontab -l
47 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

手動renew一下證書可以通過這個命令

acme.sh --cron -f

七、設(shè)置軟件自動更新

目前由于 acme 協(xié)議和 letsencrypt CA 都在頻繁的更新, 因此 acme.sh 也經(jīng)常更新以保持同步.所以為了省心省力纯陨,最好還是設(shè)置一下軟件的自動更新坛芽,執(zhí)行下面的命令就可以了。

acme.sh  --upgrade  --auto-upgrade

其他

在這個網(wǎng)站可以驗(yàn)證一下你的證書級別翼抠,根據(jù)我上面的配置可以評級為A咙轩。
https://www.ssllabs.com/ssltest/analyze.html?d=www.fengxianqi.com

參考文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阴颖,一起剝皮案震驚了整個濱河市活喊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膘盖,老刑警劉巖胧弛,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尤误,死亡現(xiàn)場離奇詭異侠畔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)损晤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門软棺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尤勋,你說我怎么就攤上這事喘落。” “怎么了最冰?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵瘦棋,是天一觀的道長。 經(jīng)常有香客問我暖哨,道長赌朋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任篇裁,我火速辦了婚禮沛慢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘达布。我一直安慰自己团甲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布黍聂。 她就那樣靜靜地躺著躺苦,像睡著了一般身腻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上匹厘,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天霸株,我揣著相機(jī)與錄音,去河邊找鬼集乔。 笑死去件,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扰路。 我是一名探鬼主播尤溜,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼汗唱!你這毒婦竟也來了宫莱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤哩罪,失蹤者是張志新(化名)和其女友劉穎授霸,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體际插,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碘耳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了框弛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辛辨。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瑟枫,靈堂內(nèi)的尸體忽然破棺而出斗搞,到底是詐尸還是另有隱情,我是刑警寧澤慷妙,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布僻焚,位于F島的核電站,受9級特大地震影響膝擂,放射性物質(zhì)發(fā)生泄漏虑啤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一猿挚、第九天 我趴在偏房一處隱蔽的房頂上張望咐旧。 院中可真熱鬧,春花似錦绩蜻、人聲如沸铣墨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伊约。三九已至姚淆,卻和暖如春去枷,著一層夾襖步出監(jiān)牢的瞬間媳友,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工逐沙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留超埋,地道東北人搏讶。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像霍殴,于是被迫代替她去往敵國和親媒惕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容