https的免费申请流程

这篇文章包含3个主要内容:

  • 如何用nodejs创建https服务器;
  • 如何免费申请到ssl证书;
  • nginx如何设置https服务器。

如果想了解https原理部分,可以查看之前的文章介绍htts原理

1、用Nodejs创建HTTPS服务器

在Nodejs中,我们可以通过内置的https库,来实现HTTPS服务器。
Nodejs的HTTPS使用文档:http://nodejs.org/api/https.html

~ cd /home/conan/nodejs
~ sudo npm install

用openssl生成证书文件

~ openssl version -a
OpenSSL 1.0.1 14 Mar 2012
built on: Tue Jun  4 07:26:06 UTC 2013
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx)
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/lib/ssl"

~ openssl genrsa -out privatekey.pem 1024
~ openssl req -new -key privatekey.pem -out certrequest.csr
~ openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

修改文件app.js

~ vi app.js

//在最下面
var https = require('https')
    ,fs = require("fs");

var options = {
    key: fs.readFileSync('./privatekey.pem'),
    cert: fs.readFileSync('./certificate.pem')
};

https.createServer(options, app).listen(3011, function () {
    console.log('Https server listening on port ' + 3011);
});

启动服务器

~ node app.js

Express server listening on port 3000
Https server listening on port 3011

2、申请免费的SSL证书

HTTPS和HTTP的区别

https协议需要到ca申请证书,一般免费证书很少,需要交费。 http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

目前网上也有一些免费的证书,可以申请的到,下面是通过startssl申请免费一年ssl证书,对于理解整个过程还是很有帮助的。

StartSSL( 网址:http://www.startssl.com,公司名:StartCom )也是一家CA机构,它的根证书很 久之前就被一些具有开源背景的浏览器支持(Firefox浏览器、谷歌Chrome浏览器、苹果Safari浏览器等)。

1、打开http://www.startssl.com/

2、点击StartSSL Free(Class 1)

3、点击Certificate Control Panel进入控制面板,或直接访问http://www.startssl.com/?app=12也可以。

4、点击sign-up注册一个帐号

5、填写注册信息,要用英文格式填写

6、信息填写完成后,会给注册的邮箱发送一封电子邮件,此时不要关闭startssl的这个页面,检查邮箱输入验证码

7、等待StartComm人工审核注册的个人信息,如果审核成功会收到第二个邮件

例如:

StartSSL Account Request

To XXXX,
Your request for an account at StartSSL (www.startssl.com) has been approved and is available during the next 24 hours at the following location:
https://www.startssl.com/?app=12&action=release&id=XXXXXX&auth=XXXXXXXXXXXXXXXX
The verification code in order to continue the process is XXXXXXXXXXXXXXXX
Thank you!

startssl审批很快,稍等会儿就能收到邮件。访问邮件中的链接地址,再次输入验证码。

8、建立私钥


选择高级,点击continue。

9、安装证书

10、安装完成

安装完成后,会有一个提示框:


页面会提示:

Your first client certificate has been installed into your browser. This is a bootstrapping certificate for authentication purpose.
Backup this certificate to an external media, otherwise you might not be able to regain access to your account. Please read these instructions from our FAQ page on how to do that.

点击页面上的Finish。

11、随后页面会跳到F.A.Q.页面

点击How do I backup my client certificates?看下如何备份证书
firefox:工具-选项-高级-查看证书-您的证书,下面就有需要备份的证书。以后登录startssl要凭浏览器上前面安装的证书登录。丢失证书后只能重新注册。

以后要登录,点击Authenticate凭证书登录:


12、开始申请免费ssl证书

回到startssl的控制面板,我们看到有三个选项卡:


大致流程如下:
1)先到Validations Wizard验证域名的所有权
2)再到Certificates Wizard选择要申请证书的类型
3)再到Tool Box选项卡,使用里面的小工具生成证书

13、点击Validations Wizard

选择Domain name validation,点击Continue。


输入要申请的域名,点击Continue。


选择一个验证的邮箱,有postmaster@域名、hostmaster@域名、webmaster@域名、和注册域名时的邮箱。


检查邮箱,输入验证码:


验证成功:


域名验证成功,这次验证在30天内有效,过期了要重新验证。点击Finish回到控制面板。

14、点击Certificates Wizard

选择WEB Server SSL/TSL Certifites:


生成私钥,为私钥提供一个密码,最少10位,最大32位:


将显示内容保存为ssl.key(这个私钥是加密的):


选择域名:


输入一个需要ssl证书的子域名:


然后确认前面用于申请证书的域名。

最后会提示:

Additional Check Required!

You successfully finished the process for your certificate. However your certificate request has been marked for approval by our personnel. Please wait for a mail notification from us within the next 3 hours (the most). We might contact you for further questions or issue the certificate within that time. Thank you for your understanding!

随后就等邮件通知。

15、收到邮件后点击Tool Box

使用Tool Box - Decrypt Private Key,将前面生成的ssl.key的内容解密。将结果保存为.key文件。比如ssl2.key。

保存证书:
Tool Box - Retrieve Certificate,选择申请证书的域名,将框中的内容保存为.crt文件。比如ssl.crt。这个就是证书文件啦。

3、nginx配置ssh证书

在nginx.conf文件里修改配置位置:

server {
    listen       443;
    server_name  localhost;
    ssl on;
    ssl_certificate ssl/ssl2.crt;
    ssl_certificate_key ssl/ssl2.key;
 }

https默认是监听443端口的。
nginx -s reload下如果没有任何提示,就说明配置成功了。

如果我们需要将原先的http的链接自动跳转到https,可以增加如下配置。

server {
    listen 80;
    server_name coollist.cn;
    rewrite ^/(.*) https://$server_name/$1 permanent;    #跳转到Https
}

阅读原文

推荐阅读:

成为巴菲特、第一性原理、区块链 - 7月份知识清单

雷达探测,4种方式找到你的小众市场

小密圈助手 - 一个Chrome插件的产生过程

Scott's Cheap Flights案例 - 月收入$320k

参考:
http://www.startssl.com/
http://blog.fens.me/nodejs-https-server/
http://www.live-in.org/archives/1296.html
http://blog.sina.com.cn/s/blog_61b0aafd0100wz9z.html

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

推荐阅读更多精彩内容