最近看到别人的网站都是https的小绿锁了,有些羡慕,就想着跟着安装下吧。

前期调研

目前有很多支持免费ssl的, 1. 沃通:目前很多人不推荐 2. let's encrypt:很多人推荐 3. 阿里云:需要填写很多东西

还有些其他的免费的,七牛以及腾讯都提供免费的资源,但是需要填写很多信息,就算了,也不深入调查了。 就是用let's encrypt的吧。

安装

使用let's encrypt很简单,官网的教程很清楚。 我是用的是debian8,代理工具是nginx,就执行这一条指令安装

1
apt-get install certbot -t jessie-backports

我们在生成证书前需要关闭nginx服务

1
service nginx stop

然后针对我们的域名生成自己的证书即可

1
certbot certonly --standalone --email your@email.com -d yourdomain.com

提示我们生成好了,目录是在/etc/letsencrypt/live下面

nginx

这一块配置耗费了我最多的时间。好多网上的教程都太久了,并不适合如今的软件了。 整体很简单。我们有两步操作 1. 原站点加上443监听 2. 80定向致443

原站点443监听

我先粘贴下我的配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
server {

    listen      443 ssl;
    server_name  blog.txiner.top txiner.top;

    root    /var/www/blog;

    #charset koi8-r;
    #access_log  /var/log/nginx/blog.log  error;


    ssl_certificate   /etc/letsencrypt/live/txiner.top/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/txiner.top/privkey.pem;

到这就OK了,我就是把原来的listen 80改成了listen 443 ssl然后加上了证书路径

1
2
ssl_certificate   /etc/letsencrypt/live/txiner.top/fullchain.pem;
ssl_certificate_key  /etc/letsencrypt/live/txiner.top/privkey.pem;

这样443就配置好了,可是80呢?

80定向

很简单,直接重定向到https就好啦

1
2
3
4
5
6
7
8
server{
    listen 80;
    server_name txiner.top;

    add_header Strict-Transport-Security max-age=15768000;

    return 301 https://$server_name$request_uri;
}

问题解决了!