HTTPS:为 Ghost 设置 SSL 连接

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端口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

Author

Ludis

Posted on

2016-08-01

Updated on

2016-08-03

Licensed under

Comments