开启HTTPS

参考文章:

生成证书

先安装工具:

  1. sudo apt-get install letsencrypt

生成证书:

  1. sudo letsencrypt certonly --webroot -w /var/www/skyao -d skyao.io

配置nginx

/etc/nginx/sites-available下增加一个skyao.io.https站点文件,内容如下:

  1. server {
  2. listen 443 ssl;
  3. server_name skyao.io www.skyao.io;
  4. root /var/www/skyao;
  5. index index.html;
  6. ssl on;
  7. ssl_certificate /etc/letsencrypt/live/skyao.io/fullchain.pem;
  8. ssl_certificate_key /etc/letsencrypt/live/skyao.io/privkey.pem;
  9. }

然后将http请求都自动转为https,修改原来的skyao.io配置文件:

  1. server {
  2. listen 80;
  3. server_name skyao.io www.skyao.io;
  4. rewrite ^(.*)$ https://$host$1 permanent;
  5. }

重启nginx:

  1. sudo service nginx restart

设置自动更新证书

由于Let’s Encrypt证书的有效期为90天,所有我们需要定期更新以避免证书过期,通常Let’s Encrypt会发邮件提醒的。

更新操作如下:

  1. # 更新证书
  2. sudo letsencrypt renew
  3. # 重新启动nginx
  4. sudo systemctl restart nginx