Openresty ?? with Auto SSL
描述(Desc)
這是一個可以自動申請(并自動更新)免費ssl證書的Openresty鏡像风瘦。證書申請和更新使用的是開源工具acme.sh鞍陨。
你可以設(shè)置證書服務(wù)商:zerossl, letsencrypt腰湾,buypass勤家,ssl等等健民,或是地址,如Letsencrypt測試地址:https://acme-staging-v02.api.letsencrypt.org/directory
This is a Openresty image with auto ssl胎撇,use acme.sh介粘, you can set default-ca,like: zerossl, letsencrypt,buypass晚树,ssl …
當(dāng)然姻采,你也可以把它當(dāng)普通的openresty鏡像使用。當(dāng)入?yún)OMAINS為空(-e DOMAINS=“” 或 不填)爵憎,不會啟動證書acme(證書獲取程序)慨亲。
Openresty鏡像github地址
https://github.com/xiaojun207/docker-openresty
Nginx鏡像github地址
https://github.com/xiaojun207/docker-nginx
快速啟動(Quick Start)
docker pull? xiaojun207/openresty:latest
使用例子婚瓜,如下(eg.):
docker run -d -p 80:80 -p 443:443 -v "/data/web":/data/web \
-v /data/openresty/nginx/conf/ssl:/usr/local/openresty/nginx/conf/ssl \
-v /data/openresty/nginx/conf/conf.d:/usr/local/openresty/nginx/conf/conf.d \
-v "/data/openresty/acme_cert":/acme_cert/ \
-e SslDomains="example.com;www.example.com;test.example.com;test2.example.com" \
-e SslServer="zerossl" \
-e mail="my@example.com" \
--name myopenresty xiaojun207/openresty:latest
注意:
1、建議把路徑/usr/local/openresty/nginx/conf/ssl巡雨、/acme_cert/中的內(nèi)容都持久化到宿主機保存闰渔,避免容器刪除后,啟動后會自動再次獲阮硗(頻繁申請證書會被服務(wù)商限制)冈涧。
2、不要改變nginx.conf的路徑正蛙,否則證書生成會失敗督弓。
3、測試部署時乒验,建議使用letsencrypt的測試地址(即參數(shù)愚隧,-e SslServer=“https://acme-staging-v02.api.letsencrypt.org/directory”)。
使用說明
默認情況下, 使用的是服務(wù)器驗證锻全,所以請確保狂塘,被申請ssl的域名可以訪問到openresty容器。
參數(shù)說明
參數(shù)是否必填說明
SslDomains必填需要獲取參數(shù)ssl的域名列表鳄厌。多個域名間以英文分號分隔(即:; )荞胡。如果為空或不填,這就是個普通的openresty鏡像了嚎,哈哈泪漂。
mail否你的郵箱,用于獲取ssl時配置歪泳,有的證書服務(wù)商有網(wǎng)頁管理端萝勤,可以根據(jù)郵箱查看相關(guān)的證書。如果為空可能會導(dǎo)致注冊到證書服務(wù)商失敗呐伞,因此如果參數(shù)為空會使用默認郵箱敌卓。
SslServer否證書服務(wù)商(名字或地址),默認:zerossl伶氢,你還可以使用:letsencrypt假哎,buypass,ssl等等鞍历,或者letsencrypt的測試地址:https://acme-staging-v02.api.letsencrypt.org/directory
dns否域名是否采用dns驗證,可選參數(shù)為:空格肪虎,dns_ali劣砍,dns_aws,dns_cf扇救,dns_dp刑枝,香嗓,。装畅。靠娱。更多參數(shù)請查看:https://github.com/acmesh-official/acme.sh/wiki/dnsapi例如1: -e dns=" ", 空格時,請查看控制臺日志中的dns記錄掠兄,并手動為域名添加解析像云;例如2: -e dns=“dns_ali” -e Ali_Key=“sdfsdfsdfljlbjkljlkjsdfoiwje” -e Ali_Secret=“jlsdflanljkljlfdsaklkjflsa” 使用云廠商api,請?zhí)砑訉?yīng)的key蚂夕、secret等"添加域名解析"授權(quán)參數(shù)
證書路徑和openresty配置方法
容器啟動迅诬,會創(chuàng)建一個默認證書,避免openresty啟動失敗婿牍。 證書獲取成功后侈贷,將會被安裝到固定路徑:/usr/local/openresty/nginx/conf/ssl,
openresty配置方法如下:
? ? server {
? ? ? ? # 80端口必須可以正常訪問等脂,用來驗證你的域名
? ? ? ? listen? ? ? 80;
? ? ? ? server_name example.com;
? ? ? ? # ...
? ? }
? ? server {
? ? ? ? listen? ? ? 443 ssl;
? ? ? ? server_name example.com;
? ? ? ? root /data/web/www;
? ? ? ? ssl_stapling off;
? ? ? ? ssl_certificate ssl/fullchain.pem; # ssl證書自動安裝的路徑:/usr/local/openresty/nginx/conf/ssl/
? ? ? ? ssl_certificate_key ssl/key.pem; # ssl證書自動安裝的路徑:/usr/local/openresty/nginx/conf/ssl/
? ? ? ? # ...
? ? }
證書更新
證書會定期檢查是否快要過期俏蛮,如果快要過期,會自動更新并安裝證書上遥,你可以高枕無憂了(理論上的搏屑,我的證書還沒到期,哈哈)露该。