2016年10月26日 星期三

使用 Certbot + Let's Encrypt 小步快跑的奔向 Https

HTTPS SSL …原理、好处就不扒了,直接上过程。

了解Certbot#

  1. 首先 进入 Certbot
  2. 选择使用的服务器软件 / 主机系统
file
  1. 选择后进入

生成及安装证书#

  1. 安装依赖的 epel 源,然后安装 certbot
    $ sudo yum install epel-release
    $ sudo yum install certbot
  2. certbot certonly 命令 , 生成证书公私钥. 示例: (支持多域名, )
    certbot certonly --webroot -w /home/sites/webroot1 -d domain1.com  -w /home/sites/webroot2/ -d www.domain2.com
    此过程中 Certbot 会创建随机文件,然后远程验证域名及服务控制权
    新生成的证书及相关文件,将生成到 /etc/letsencrypt 路径下。
    drwx------ 3 root root 4096 Aug  8 23:11 accounts
    drwx------ 3 root root 4096 Aug  8 23:16 archive
    drwxr-xr-x 2 root root 4096 Aug  8 23:16 csr
    drwx------ 2 root root 4096 Aug  8 23:30 keys
    drwx------ 3 root root 4096 Aug  8 23:16 live     #nginx 可用证书目录
    drwxr-xr-x 2 root root 4096 Aug  8 23:25 renewal
  3. 编辑 site.conf 加入你的 ssl 证书
            fastcgi_send_timeout 300;
            fastcgi_read_timeout 300;
        }   
    
        location ~ /\.ht {
            deny all;
        }   
    
        # 看这里
        ssl_certificate     /etc/letsencrypt/live/domain.com/cert.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
    }
  4. 然后证书都好了让我们,把 http 请求都转向 https 吧
    server {
        listen 80; 
        server_name icoding.so;
    
        rewrite ^/(.*)$ https://icoding.so/$1 permanent;
    }
  5. 重启 nginx 刷新浏览器欣赏那个绿色的小锁吧 
    Alt Text
  6. 最后 为了保证证书的长期可用,添加个 crond 任务,每月自动续期即将到期的证书吧
    crontab -e
    # 输入
    * * * */1 * /usr/bin/certbot renew 1>> /dev/null 2>&1
最后推下本人小博客, icoding.so ,基于 laravel 5.2 github 开源,文档编辑中。
踩坑过后最终确定:
  1. Let's Encrypt 是单域绑定, 虽然支持多域名,但是不支持泛域绑定。
  2. Let's Encrypt 需要每90天续期。
    使用的童鞋自行斟酌

from : https://laravel-china.org/topics/2525

沒有留言:

wibiya widget