今天分享一个非常给力的 SSL 证书生成网站,从此 HTTPS 不再是难事儿!

Certbot

不错,今天的主角就是给力的 Certbot,免费好用,真是我等 diaosi 的一大福音。

我们先打开其官网,整体浏览下

​https://certbot.eff.org/lets-encrypt/centos6-nginx​

我们可以看到,想使用 Certbot,需要一些条件

使用 Certbot 配置 HTTPS,让你的网站不再裸奔_nginx


  1. 需要一个命令行服务器,一般就是 linux了。我这里使用的是 CentOS6。
  2. 我们需要已经部署了一个 http 服务,80 端口是监听状态的,我使用的是 Nginx 代理。
  3. 有执行 root 权限的用户。

具体安装

在使用官网上的安装步骤前,我们要先有 Nginx,并且已经成功启动,当然也要有绑定了公网 IP 的域名,因为 SSL 证书都是要绑定到具体域名的。

公网 IP,域名申请,Nginx 安装等,就不说啦,我们现在来看一下我这里 Nginx 的简单配置。

server {
    listen       443;
    server_name  www.kungfuworld.top;
    ssl on;
    root        /home/KungFuWorld/      ;
    access_log  /home/log/access.log;
    error_log   /home/log/error.log;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass       http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        index  index.html index.htm;
    }
}
server {
    listen 80;
    server_name kungfuworld.top;
    rewrite ^(.*)$ https://$host$1 permanent;
    }

我配置的域名是 www.kungfuworld.top,后面在执行 Certbot 安装时,会自动扫描到这里配置的域名,从而根据这个域名来生成证书。

下面,就是一步步的按照官网的步骤来操作就好了

安装 Certbot

wget https://dl.eff.org/certbot-auto
sudo mv certbot-auto /usr/local/bin/certbot-auto
sudo chown root /usr/local/bin/certbot-auto
sudo chmod 0755 /usr/local/bin/certbot-auto

生成证书

sudo /usr/local/bin/certbot-auto certonly --nginx

中间会有一些需要用户交互的步骤,按照提示操作就好

配置 Nginx

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

在刚刚的 Nginx 配置文件中,增加上面的两条配置,就完成了证书的配置。

如果不出意外,该域名的 HTTPS 就可以访问了,而且是浏览器信任的证书。

使用 Certbot 配置 HTTPS,让你的网站不再裸奔_官网_02

自动更新

使用 Certbot 安装的证书,只有 90 天的有效期,还好其提供了方便的自动更新功能

/usr/local/bin/certbot-auto renew

我们可以创建一个 crontab 任务,来自动更新

0 4 */80 * * /usr/local/bin/certbot-auto renew &>> /dev/null

每隔 80 天在凌晨 4 点执行一次 renew 操作

至此,基于 Certbot 的 HTTPS 配置就完成了。