在Nginx里使用Let’s Encrypt证书

Let’s Encrypt出来已经一段时间了,配置比刚出来时简单了许多。这里写个简单安装笔记。

配置nginx

首先确认nginx已经正确安装。稍修改nginx配置文件,添加一个server块(把9.9.9.9改为你的服务器地址):

server {
    listen 80;
    server_name 9.9.9.9;
        location ^~ /.well-known/acme-challenge/ {
        alias /var/www/public/.well-known/acme-challenge/;
        autoindex off;
        break;
    }
}

注意这里必须要用到80端口。如果担心其它配置影响,可以将其它server配置块先注释掉,待配置好证书后再撤销修改。

配置letsencrypt

  1. 下载安装脚本
    wget https://dl.eff.org/certbot-auto
    chmod a+x ./certbot-auto
    ./certbot-auto certonly
    
  2. 进入下面的对话框后选100
  3. 输入域名。多个域名用空格分开。注意不能使用通配符*:00
  4. 1进入下一步00
  5. 输入验证服务器时需要用到的目录。Let’s Encrypt在验证时会在此目录下自动生成临时目录。00
  6. 选择刚才生成的目录,点OK。接下来就开始生成证书了。00
  7. 如果成功会有如下提示
    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at
       /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire
       on 2016-12-17. To obtain a new or tweaked version of this
       certificate in the future, simply run certbot-auto again. To
       non-interactively renew *all* of your certificates, run
       "certbot-auto renew"
       ....
    

使用证书

在nginx里使用证书(把example.domain换成你的域名):

server {
    listen 443 ssl;
    server_name example.domain;
    ssl_certificate    /etc/letsencrypt/live/example.domain/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.domain/privkey.pem;
}
Comment