博客托管迁移、HTTPS 加持-续

Posted by JC on 2016-07-11 22:56:46 Updated on 2016-07-11 22:56:46

原来写的 博客托管迁移、HTTPS 加持 没写全,里面的步骤我也没怎么明白,昨天想在 VPS 上装个 Gogs 代码托管用一下的,结果没折腾成功。虽然没把 Nginx 搞坏,但还是不爽,直接重装系统,静态网站配置起来也很快,配置下系统然后再配置 Nginx 就行了,到 HTTPS 这儿又有问题了,搞了好一会才明白。

Let’s Encrypt 配置

先按照小众软件的 在 Nginx 上使用 Let’s Encrypt 加密(HTTPS)你的网站[简明教程],先直接把网站的 HTTPS 跑起来。

不过运行 Let’s Encrypt 的命令应该是:

/letsencrypt-auto certonly

没有 –standalone 这个参数,是在图形界面里面选择这个选项。

还有一点是 ssl_ciphers 不对,要参照这个链接 的参数。

Nginx 配置好之后应该是能在 Chrome 里面看到绿色的小锁。

Let’s Encrypt 续签

Let’s Encrypt 证书只有九十天的有效期,需要续签,就有各种各样的续签脚本,小众软件里面的续签方法我是没试成功。

一个快速获取/更新 Let's encrypt 证书的 shell script 是搞定了。

运行脚本可能会有权限问题,把 Nginx 里面的 ssl_certificate ssl_certificate_key 改掉就行了,加入 cron 定时任务,搞定。

最后附上 Nginx 的配置文件:

server {
    # the port your site will be served on
    listen      443 ssl;
    # the domain name it will serve for
    server_name breakwire.me; # substitute your machine's IP address or FQDN

    # Lets Encrypt
    ssl on;
    ssl_certificate     /home/chen/breakwire.chained.crt;
    ssl_certificate_key /home/chen/breakwire.me.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
    allow all;

    # location
    location / {
       root /home/chen/BreakWire/;
       index index.html;
    }

    # logs
    access_log /home/chen/nginx-log/access.log;
    error_log /home/chen/nginx-log/error.log;
    # gzip
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 4;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript  image/jpeg image/png;
    gzip_disable "MSIE [1-6]\.";
}

server {
    listen 80;
    server_name breakwire.me;
    return 301 https://$host$request_uri;
}

HTTP 重定向至 HTTPS

这步照着小众软件里面的步骤做就搞定了,就是在 Nginx 里面再加个配置。

tags: devops


BMC logoBuy me a coffee via Alipay or Wechat Pay