avatar1 avatar
@{[{user.name}]}
希腊·圣域
since February 1500

先吐个槽୧(˶‾᷄ ⁻̫ ‾᷅˵)୨

LetsEncrypt是由ISRG互联网安全研究小组发起的一个免费、开发、自动化的证书颁发机构,所以安全性毋庸置疑,不像某些毫无节操的证书签发机构或者服务商通公然发放伪造证书,给某些原本毫无信用的垃圾机构的无耻行径添贡献厚厚的一笔,有句话怎么说来着,貌似叫弄巧成拙...

LetsEncrypt现在提供了SSL证书自动授权和管理的一个客户端,并且提供的详细的步骤等等是可以非常容易的安装和管理,不过我用的是Nginx做反向代理服务器,按照官网的nginx配置方法怎么都不成功,在阅读了大量相关文章后终于成功配置成功,一下是详细的配置步骤。

环境信息

服务器:   ubuntu 14.04/16.04
反向代理: Nginx 
Ghost:   0.11.8  

安装certbot

可以参考certbot的官方网站

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot 

第一次配置nginx

通过certbot自动授权证书的时候certbot服务器需要验证服务器的有效性,该步骤即为配置nginx以便certbot服务器可以通过验证。

首先备份你nginx的配置文件

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_backup

编辑default文件,添加如下信息, 把yourdomain.com/www.yourdomain.com换成你自己的域名。

server {  
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

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

重启nginx

service nginx restart

certbot自动验证和签发SSL数字签名

确保你的服务器可以通过80端口访问。同样yourdomain.com和www.yourdomain.com换成你自己的域名。

如果第一次使用certbot命令时推荐在模拟环境模式运行,certbot现在加入了请求频率限制,一个小时内最多重试5次,如果5次全部失败则要等一个小时后才可以进行下一次请求,在模拟环境下测试通过后再取消模拟模式。启用模拟模式非常简单在certbot后添加

Ghost (nginx) 配置SSL 06 June 2016 22:00:13

因为服务端用的是unbuntu 14.04版本,跟官方网站中的配置例子有很多不一样的地方,导致最后还是花费了很多时间自己摸索了一下才算过关,整理出来方便大家参考吧。

假设你已经成功安装并运行Ghost到你自己的服务器(vps), 包括域名也解析成果。这里有个问题,配置Ghost的config.js的时候不要占用80和443端口

SSL证书

你需要准备两个文件,xx.crtxx.key,一个是你的证书,另一个是私匙,有很多SSL的供应商,你可以选一个合适你自己的,一般作为博客类站点都可以用Domain Validation直接在线签发SSL证书。

安装nginx

首先需要明确的是SSL的证书并不是直接配置到Ghost的,需要借助讲SSL证书装配到nginx,再由nginx来做路由代理分发http(s)请求到Ghost,所以你需要安装nginx:

sudo apt-get install nginx

加载SSL证书到nginx

在nginx目录下创建一个名为ssl的子目录: mkdir /etc/nginx/ssl

将你得到的 xx.crtxx.key 复制到ssl子目录,推荐使用 FileZilla 这个软件来连接你的vps进行文件复制

打开nginx的配置文件 sudo nano /etc/nginx/sites-available/default

添加以下内容:

server {  
    listen 80;
    server_name your_domain.com www.your_domain.com;
    return 301 https://$server_name$request_uri; #强制SSL
}
server {  
    listen 443 ssl;
    server_name your_domain.com www.your_domain.com;
    ssl_certificate      /etc/nginx/ssl/server.crt;
当前第 1页,一共 1页