HTTPS笔记

Google、Apple 等大公司在大力推动 HTTPS,把自己的网站武装上 HTTPS 已经是势在必行。SSL证书有付费的,也有免费的。当然能用付费的更好,但对于自己的小站,免费SSL足矣。免费证书来源挺多,笔者选择了腾讯家的(DV SSL)。另外,阿里家也提供免费证书申请。

下面就记录了从申请证书到部署上 Nginx 的过程。

一、申请证书

访问腾讯云的SSL证书管理页面,通过 申请证书 渠道,按照提示步骤很快就会完成申请。

腾讯云 证书管理

下载证书压缩包,文件结构如下:

├ Apache
│   ├ 1_root_bundle.crt
│   ├ 2_www.domain.com.crt
│   └ 3_www.domain.com.key
├ IIS
│   └ www.domain.com.pfx
└ Nginx
    ├ 1_www.domain.com_bundle.crt
    └ 2_www.domain.com.key
二、部署到 Nginx
server {
    listen 443;
    server_name www.domain.com;

    ssl on;
    ssl_certificate /etc/nginx/cert/1_www.domain.com_bundle.crt;
    ssl_certificate_key /etc/nginx/cert/2_www.domain.com.key;

    ssl_session_timeout 5m;

    location / {
        # ...
    }
}

HTTP 与 HTTPS 共存:

server {
    listen 80;
    listen 443 ssl;
    server_name www.domain.com;

    # ssl on;
    ssl_certificate /etc/nginx/cert/1_www.domain.com_bundle.crt;
    ssl_certificate_key /etc/nginx/cert/2_www.domain.com.key;

    ssl_session_timeout 5m;

    location / {
        # ...
    }
}

注意 # ssl on;

* 相关概念

菩提树下的杨过.Net 的博客 openssl、x509、crt、cer、key、csr、ssl、tls 这些都是什么鬼? 中摘抄:

  • TLS:传输层安全协议 Transport Layer Security 的缩写

  • SSL:安全套接字层 Secure Socket Layer 的缩写

    TLS 与 SSL 对于不是专业搞安全的开发人员来讲,可以认为是差不多的,这二者是并列关系,详细差异见 http://kb.cnblogs.com/page/197396/

  • KEY:通常指私钥

  • CSR:Certificate Signing Request 的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。

  • CRT:Certificate 的缩写,即证书

  • X.509:一种证书格式。对 X.509 证书来说,认证者总是 CA 或由 CA 指定的人,一份 X.509 证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。

    X.509 的证书文件,一般以 .crt 结尾,根据该文件的内容编码格式,可以分为以下二种格式:

    • PEM:Privacy Enhanced Mail,打开看是文本格式,以“-----BEGIN...”开头,“-----END...”结尾,内容是 BASE64 编码。Apache和 Nginx 服务器偏向于使用这种编码格式。
    • DER:Distinguished Encoding Rules,打开看是二进制格式,不可读。Java 和 Windows 服务器偏向于使用这种编码格式。
  • OpenSSL:相当于 SSL 的一个实现,如果把 SSL 规范看成 OO 中的接口,那么 OpenSSL 则认为是接口的实现。接口规范本身是安全没问题的,但是具体实现可能会有不完善的地方,比如之前的“心脏出血”漏洞,就是 OpenSSL 中的一个 BUG。

* 自建证书

通过 Linux 的 openssl 创建证书:

openssl genrsa 1024 > server.key
openssl req -new -key server.key -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey server.key -out server.crt
* 部署到 Nodejs

对基于 express 框架的 Nodejs 进行改造。

var express = require('express');

var app = express();

// ...

var server = app.listen(80, function() {
  var host = server.address().address;
  var port = server.address().port;

  if (host == '::') {
    host = 'localhost';
  }
  
  logger.info('http://%s:%s/test/', host, port);
});

logger.info('Server is running...');
var express = require('express');
var https = require('https');
var fs = require('fs');

var app = express();

// ...

var key4Https = fs.readFileSync('./cert/2_www.domain.com.key', 'utf-8');
var crt4Https = fs.readFileSync('./cert/1_www.domain.com_bundle.crt', 'utf-8');
var credentials = { key: key4Https, cert: crt4Https };
var httpsServer = https.createServer(credentials, app);

httpsServer.listen(80, function() {
  logger.info('https://localhost/test/');
});

logger.info('Server is running...');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容