给Ghost@2.x 上SSL

之前写过一篇 ghost@0.7 上 SSL的文章
传送门:/0yuan-rang-ni-de-wang-zhan-zhi-chi-https/

这次给 @2.x 上SSL 方式其实90% 是一样的。。。。

但是呢。。。唯独有点区别的地方在于 ghost install 或者 ghost setup 的时候提示的 SSL配置一定要选择 no

install 或者 setup 的时候的 SSL 配置 是自动关联到 Let's Encrypt 的。。。虽然这是个免费的SSL颁发,但是他每次颁发的SSL证书只有3个月有效期,到期 要手动续签,很麻烦!而且申请也是很麻烦!!!

所以我们还是沿用上一篇文章中的办法,通过 阿里云 或者 腾讯云 去申请一年免费的ssl证书。
之后再按照 上一篇文章中的内容去配置就行啦~ 配置其实还是很简单的。。。

不过有一点注意的是 如果 是通过 ghost installghost setup 命令创建的 Nginx 配置文件的话,这个 Nginx 配置文件并不在你的 ngix 的 site-enalbed 目录下,而是在你的 Ghost博客目录下的 system -> files 里面

但是 配置完成之后 要重新改动一下 在Ghost博客根目录下的 config.production.json 文件

ghost stop <Name> 关闭你的 Ghost博客
然后修改 config.production.json 文件中的 url 的值,把 http 改成 https

修改完之后,在Ghost博客所在的根目录下 通过 ghost start 命令 重新启动 ghost博客

完美!

好了 现在我们的 SSL 配置成功了,接下来,我们做一步额外的工作,把 原来的 http 重定向到 现在的 https

现在我们修改下 Nginx 的 配置文件

server {
    listen 443;
    listen [::]:443;

    ssl on;
    ssl_certificate [pem 文件路径];
    ssl_certificate_key [key 文件路径];

    server_name [你的域名];
    root /var/www/<博客目录>/system/nginx-root;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:[port];
    }

    location ~ /.well-know {
        allow all;
    }

    client_max_body_size 50m;
}
server {
    listen 80;
    listen [::]:80;

    server_name [你的域名];

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

好了,我们 重启下Nginx 看下效果吧!