基于lua-resty-auto-ssl插件实现自动部署、更新SSL证书
github地址 https://github.com/auto-ssl/lua-resty-auto-ssl
1、安装Openresty
1 | curl -so /etc/yum.repos.d/openresty.repo https://openresty.org/package/centos/openresty.repo |
OpenResty所有的文件以及依赖包都安装在 /usr/local/openresty
目录下。
2、安装配置 lua-resty-auto-ssl
2.1 安装Luarocks
Luarocks是Lua的包管理工具,很多OpenResty的包都可以通过luarocks来安装。
1 | mkdir /root/package && cd /root/package |
2.2 安装lua-resty-auto-ssl
1 | luarocks install lua-resty-auto-ssl |
3 配置lua-resty-auto-ssl
在/usr/local/openresty/nginx/conf
目录下新建 mkdir ssl
(存放ssl证书) 和mkdir vhost-services
(存放server配置文件)
编辑配置文件 vim /usr/local/openresty/nginx/conf/nginx.conf
,内容如下:
1 | user root; |
注意:
3.1 只允许为 huany.top 结尾的域名生成证书
1 | auto_ssl:set("allow_domain", function(domain) |
3.2 生成的证书存放目录
1 | auto_ssl:set("dir", "/usr/local/openresty/nginx/conf/ssl") |
3.3 Let’s Encrypt 请求开发的80端口
1 | server { |
3.4 Let’s Encrypt 要求开发的内部端口 (8999可以更改)
1 | server { |
3.5 强制http 跳转 https
1 | server { |
4 配置Server
先看一下/usr/local/openresty/nginx/conf
下的目录结构 (其中ssl
和vhost-services
是我们提前新建好的)
1 | [root@rancher conf]# ll |
我们的server配置在vhost-services
目录中,www.conf
的内容如下:
1 | server { |
test.conf
内容如下:
1 | server { |
注意:
4.1 需要先配置默认证书,让openrety
正常启动
1 | openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 \ |
下面两行配置证书
1 | ssl_certificate ssl/resty-auto-ssl-fallback.crt; |