Let's Encrypt - 靠谱又免费的SSL证书

SSL证书,用于加密HTTP协议,也就是HTTPS。随着淘宝、百度等网站纷纷实现全站Https加密访问,搜索引擎对于Https更加友好,加上互联网上越来越多的人重视隐私安全,给网站添加SSL证书似乎成为了一种趋势。


Let's Encrypt

Let's Encrypt是国外一个公共的免费SSL项目,由 Linux基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS,目前Facebook等大公司开始加入赞助行列。

Let's Encrypt已经得了 IdenTrust的交叉签名,这意味着其证书现在已经可以被Mozilla、Google、Microsoft和Apple等主流的浏览器所信任,你只需要在Web服务器证书链中配置交叉签名,浏览器客户端会自动处理好其它的一切,Let's Encrypt安装简单,未来大规模采用可能性非常大。

Let's Encrypt 的最有价值的贡献是它的 ACME 协议,第一份全自动服务器身份验证协议,以及配套的基础设施和客户端。这是为了解决一直以来HTTPS TLS X.509 PKI 信任模型,即证书权威(Certificate Authority, CA)模型缺陷的一个起步。

经过我的测试,推荐通过https://zerossl.com注册一个免费的SSL证书。

https://zerossl.com 申请免费SSL证书步骤的详细介绍:

一、登录https://zerossl.com,点击“ONLINE TOOLS" 按钮,选择在线方式申请免费SSL证书。

第一步、登录https://zerossl.com,选择在线申请方式

说明:这里也提供下载软件,安装在本地PC上,运行的办法。但由于这是国外网站,下载速度较慢,而且在线直接申请很简单,不推荐使用本地安装软件的方式。

二、点击“START"按钮,开始申请SSL证书

第二步、点击“START"按钮

三、配置

配置

1. “在第1步”的红色提示处,输入自己的电子邮箱。这是可选项,也可以选择不输入。

2. “在第2步”的红色提示处,输入需要Https加密访问的网址。

3. “在第3步”的红色提示处,必须勾选"HTTP verification"。

4. “在第4步”的红色提示处,"Accept ZeroSSL TOS"和"Accept Let's Encrypt SA(pdf)"。

5. “在第5步”的红色提示处,点击”NEXT"按钮。

6. 点击”NEXT"按钮后,页面有弹窗询问你是否生成没有"www"的网址的SSL证书格式。个人建议点击“No"按钮,因为在之后的验证环节,这种模式的在线验证有可能失败。


开始生成CSR

7. 选择是否生成没有"www"的网址的SSL证书格式的弹窗后,开始生成CSR,如上图所示,需要等一会儿。


CSR生成

8 . 如上图所示,CSR生成后,点击“NEXT"按钮,用于生成account key

正在生成RSA Private Key.

9. 如上图所示,又需要等一会儿,生成了下图所示的RSA Private Key. 建议点击红色方框所示的下载按钮下载已经生成RSA Private Key和CSR,以防之后验证失败或意外网络中断需要重复申请RSA Private Key和CSR。点击“NEXT”按钮进入验证环节。


四、验证

1. 进入验证页面后,根据要求使用get方式访问"http://你的网址Domain/.well-known/acme-challenge/下面页面File的字符串"时,可以得到页面中"Text"的字符串,以便实现验证。

验证页面

2. 为了达到验证的目的,可以使用2种方式,即在Nginx或Apache中设置静态访问文件, 或者修改web程序。我选择修改程序,以下是node.js的程序代码的例子:
----------------------------------------------------------------------------------------

router.get('/.well-known/acme-challenge/:id', function(req, res) {

  res.send('T8YJS_____________________________7tw8r5txSg');

});

----------------------------------------------------------------------------------------

3. 在服务器验证设置好后,在验证页面点击“NEXT”按钮进行验证。

五、 导出生成的SSL证书

导出生成的SSL证书

到了这个页面就生成了正式的SSL证书,请下载红色方块所示的证书和密钥。

注意:这个免费SSL证书有效期为90天,到期后可以免费续期,即重复这个注册过程,再次生成新的免费SSL证书。

注意:下载的证书文件的名称是"domain-crt.txt",需要修改名称为"domain.crt"。

注意:下载的密钥的名称是domain-key.txt,需要修改名称为"domain.key"。

注意:记得一定要修改这两个文件,名称无所谓,但证书文件的文件扩展名必须是".crt", 密钥的文件扩展名必须是".key"。我在这里踩了坑,没有改扩展名,造成nginx找不到这两个文件。

六、设置web服务器

我的服务器用的是nginx,nginx的配置文件"nginx.conf"的代码如下:
--------------------------------------------------------------------------------------

user nginx;

worker_processes auto;

error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;

events {

     worker_connections 1024;

}

http {

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                                 '$status $body_bytes_sent "$http_referer" '

                                  '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;

    tcp_nopush          on;

    tcp_nodelay        on;

    keepalive_timeout  65;

    types_hash_max_size 2048;

    include            /etc/nginx/mime.types;

    default_type        application/octet-stream;

    server {

         listen  80;

         server_name  需要访问的网址;

        rewrite ^(.*)$ https://$host$1 permanent;

        #强制见80端口的访问转到443的加密端口

        location / {

             proxy_set_header X-Real-IP $remote_addr;

             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

             proxy_set_header Host $http_host;

             proxy_set_header X-NginX-Proxy true;

             proxy_pass http://localhost:2000/;

             proxy_redirect off;

         }

    }

    server {

        listen 443 ssl;

        server_name 需要访问的网址;

        ssl on;

        ssl_certificate 服务器存放ssl证书文件绝对路径/domain.crt;

        ssl_certificate_key 服务器存放ssl证书密钥文件绝对路径/domain.key;

        location / {

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_set_header Host $http_host;

            proxy_set_header X-NginX-Proxy true;

            proxy_pass http://localhost:2000;

            proxy_redirect off;

        }

    }

}

----------------------------------------------------------------------------------------

对于Apache或者IIS的设置,我不太熟悉,请大家自行百度吧。




我也研究了一下其它提供免费SSL证书网站,向大家做个介绍,仅供参考:


StartCom

StartSSL是StartCom公司旗下的SSL证书,应该算是免费SSL证书中的“鼻祖”,最早提供完全免费的SSL证书并且被各大浏览器所支持的恐怕就只有StartSSL证书了。任何个人都可以从StartSSL中申请到免费一年的SSL证书。如果你有看新闻,也许已经知道了“Mozilla正式提议将停止信任 WoSign 和 StartCom 签发的新证书”,对于StartSSL请观察事态发展后再谨慎使用。


COMODO

COMODO官网只有免费90天的SSL证书试用申请,这个COMODOPositiveSSL证书来自UK2公司,VPS.net等就是UK2公司旗下的产品。目前获取UK2提供的免费COMODO PositiveSSL不需要额外的操作,只需要你先把域名解析到UK2公司的服务器上,然后在网页上获取SSL证书并下载,最后你就可以解除域名解析,同时将下载的域名证书文件上传到服务器配置SSL即可。不过由于是UK2提供的COMODO PositiveSSL免费证书,如果你没有用他们的主机总归不知道哪一天会出问题的。


CloudFlare

CloudFlare提供的免费SSL证书是UniversalSSL,即通用SSL,用户无需向证书发放机构申请和配置证书就可以使用的SSL证书,CloudFlare向所有用户(包括免费用户)提供SSL加密功能。不过Universal SSL的服务对免费用户有限制,CloudFlare只支持扩展支持Server Name Indication(SNI)协议的现代浏览器,这意味着它不支持IE6及之前版本、运行Android 2.2或更旧版本的Android浏览器。


Wosign沃通

Wosign沃通是国内一家提供SSL证书服务的网站,其免费的SSL证书申请比较简单,在线开通,一个SSL证书只能对应一个域名,支持证书状态在线查询协议(OCSP)。不过,受“Mozilla正式提议将停止信任WoSign 和 StartCom 签发的新证书”的影响,请观察后再决定是否使用。


腾讯云

腾讯云DV SSL 域名型证书由赛门铁克提供自动审核认证,快速签发,支持自动 CSR 生成、域名身份 DNS 自动验证,一步提交申请,审核签发流程全自动。可以一键部署到腾讯云资源。需要注意的是必须使用腾讯云才能够使用DV SSL 域名型证书,腾讯云可是收费的。


360网站卫士、百度云加速与Symantec等合作推出了免费的SSL证书,其实类似于上面的腾讯云DV SSL证书,只不过360网站卫士如果要使用SSL证书必须得实名认证而且还得使用他们家的CDN。而百度云加速则只能使用百度云服务器才可以申请免费SSL证书。

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

推荐阅读更多精彩内容