OpenResty配置免费的HTTPS证书

如果是Nginx,可以参考上一篇文章Nginx配置永久免费的SSL证书,由于cerbot自带nginx的插件,所以nginx的话,一个命令就完成了,但是在使用operensty时,操作上还是有点差异

1、安装certbot

1
> yum install certbot

2、在openresty的根目录下新建.well-known目录,如果是默认安装,根路径是/usr/local/openresty/nginx/html/

1
2
> cd /usr/local/openresty/nginx/html/
> mkdir .well-known

3、在openresty的server配置中新增.well-known/的访问路径

1
2
3
location /.well-known/ {
root /usr/local/openresty/nginx/html;
}

3、生成证书,如果提示需要输入邮箱,随便填写一个

1
> certbot certonly --webroot -w /usr/local/openresty/nginx/html/ -d wx.huxmarket.com

4、配置ssl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
listen 443 ssl http2;
server_name www.yourdomain.com;

ssl_certificate /etc/letsencrypt/live/www.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.yourdomain.com/privkey.pe

location /.well-known/ {
root /usr/local/openresty/nginx/html;
}

proxy_pass http://localhost:9999;
}

5、更新证书,如果需要定期更新,在crontab中配置每天更新一次即可

1
> certbot renew

备注:
certbot的几个plugin:

  1. Webroot:本地有运行webserver(例如openresty)并且有能力修改其配置,就可以用该种方式(创建隐藏目录.well-known),获取证书时无需暂停webserver的运行。
  2. Standalone:服务器未运行webserver可以使用该方式,要保持80或443端口开放。
  3. Nginx:自动获取和安装证书(自动修改配置文件),如果是Nginx使用此方式更方便。