如何申请免费的 https

目录

这里介绍一下怎么快速的申请免费的 https 证书。

原理

  我们利用这个项目(https://github.com/Neilpang/acme.sh) 来申请 https,这是一个自动申请 https 免费证书的脚本。原理就是利用 https://letsencrypt.org/
提供的自动申请和验证 https 的 API。当然申请 https 前你必须要有一个域名。

nginx 配置验证目录

# 在配置中加上这个 使可以访问验证文件
         location ^~ /.well-known/acme-challenge/ {
               root /data/htdocs/blog/;
           }

申请证书

# 登录到你网站的服务器上执行
curl  https://get.acme.sh | sh

# 执行后会在$HOME 下 产生这个目录
ls /root/.acme.sh

# 给命令起一个别名
alias acme.sh=~/.acme.sh/acme.sh

# 执行命令 -d 后写上你需要 https 的域名, --webroot 是你 web 服务器的 root 地址,脚本在验证域名是否是属于你的时候会在这个目录下
# 下载文件,然后访问文件进行验证,所以你必须要保证你的这个目录中的文件是可以通过 web 访问的。
acme.sh  --issue  -d v5b7.com -d www.v5b7.com  --webroot /data/htdocs/blog/ 


# 把生成的证书,拷贝到 nginx 目录中
cp /root/.acme.sh/v5b7.com/v5b7.com.cer /usr/local/webserver/nginx/conf/
cp /root/.acme.sh/v5b7.com/v5b7.com.key /usr/local/webserver/nginx/conf/

nginx https 配置

    server {
        listen       443 ssl ;
        server_name v5b7.com www.v5b7.com;
        ssl_certificate v5b7.com.cer;
        ssl_certificate_key v5b7.com.key;
......

自动申请

  由于免费的 https 证书几个月后就会过期,所以需要定期去申请更新,有了上面的脚本可以很容易的实现自动申请,写在 crontab 中自动触发。
这里就不写了。

目录