HTTPS:为 Ghost 设置 SSL 连接

2016-08-01 12:30:10

HTTPS:超文本传输安全协议(Hypertext Transfer Protocol Secure)是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议进行通信,但利用SSL/TLS来对数据包进行加密。HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。

HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的传输。

HTTPS 与 HTTP 的差异

  • 与HTTP的URL由http:// 起始且默认使用端口 80 不同,HTTPS的URL由https:// 起始且默认使用端口443
  • HTTP是不安全的,且攻击者通过监听和中间人攻击等手段,可以获取网站帐户和敏感信息等。HTTPS被设计为可防止前述攻击,并(在没有使用旧版本的SSL时)被认为是安全的。

Ghost设置SSL

首先申请SSL证书,可选择startSSL(免费一年)或自行购买。

具体申请过程较为繁琐,自行search,得到crt证书及key

环境:centos、nginx、nodejs、ghost

ssh后执行:

  • mkdir /etc/nginx/ssl
  • cp server.crt /etc/nginx/ssl/server.crt
  • cp server.key /etc/nginx/ssl/server.key

将两个文件上传后,更新nginx配置:

  • 编辑配置文件,以自己实际位置为准 vim /etc/nginx/conf.d/myconf.conf
  • 修改server,监听443端口:
server {  
     listen 80;
+    listen 443 ssl;
     server_name ldsun.com www.ldsun.com;
+    ssl_certificate        /etc/nginx/ssl/ldsun.com.crt;
+    ssl_certificate_key    /etc/nginx/ssl/ldsun.com.key;
     ...
     location / {
+       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+       proxy_set_header Host $http_host;
+       proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:2368;
        ...
     }
 }

重启nginx:service nginx restart

注:

从startSSL生成的key为加密key,每次重启nginx都需要输入密码解密,较为麻烦,也比较安全。可以直接将key文件解密,不用每次重启输入密码,相应的修改key文件权限即可保证安全性。

解密命令:openssl rsa -in www.ldsun.com.key -out /etc/nginx/ssl/ldsun.com.key

设置文件权限:chmod 600 ldsun.com.key

Ghost 实现文章归档

Ghost系统目前暂不支持文章归档,遂手动实现。 方法:通过调用Ghost API实现 启用ghost测试功能 进入ghost后台,在实验功能->启用测试功能能中开启测试功能,这样就可以使用Ghost API获取数据。 新建自定义页面 首先创建一个静态页面:在ghost后台新建页面,发布为 独立页面 ,标题为archives,网址可以设置为域名/archives 接着创建一个自定义页面模板:该模板是第一步创建的静态页面的模板,创建一个page-url.hbs模板,如果第一步设置的页面网址为域名/archives,那么模板即为page-archives.hbs。将该模板上传至主题根目录下即可,此时访问域名/archives,即会调用自定义的page-archives.hbs这个模板。(由于新建的模板没有任何内容,所以页面会显示为空,可以赋值page.hbs中的内容测试查看) 调用Ghost API实现文章归档 所需工具: jQuery、momentjs 文档: Ghost API文档:http://api.ghost.org/v0.1/

Nodejs 爬虫使用 eventproxy 控制并发

use superagent 抓取 cheerio 解析 eventproxy 控制并发 target url:https://cnodejs.org/ cd nodejs mkdir test && cd test touch node.js 抓取其首页数据,共40篇文章。 首先爬取首页篇文章的URL,将得到的40篇文章的URL存入数组articleUrlArr 然后爬取每篇文章的详细内容。 var eventproxy = require('eventproxy'); var superagent = require('superagent'); var cheerio = require('cheerio'); var articleUrlArr = [], baseUrl = 'https://cnodejs.org/'; superagent.get(baseUrl)