Skip to content

NiuStar/SSLForFree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SSLForFree

Let's Encrypt 上线的意义

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

在客户端-服务器数据传输中,公私钥加密使得公钥可以明文传输而依然保密数据,但公钥本身是否属于服务器,或公钥与服务器是否同属一个身份,是无法简单验证的。证书权威模型通过引入事先信任的第三方,由第三方去验证这一点,并通过在服务器公钥上签名的方式来认证服务器。第三方的公钥则在事先就约定并离线准备好,以备访问时验证签名之用。这个第三方就称为证书权威,简称CA。相应的,CA验证过的公钥被称为证书。

问题是,如果服务器私钥泄露,CA无法离线使对应的证书无效化,只能另外发布无效记录供客户端查询。也就是说,在私钥泄露到CA发布无效记录的窗口内,中间人可以肆意监控服-客之间的传输。如果中间人设法屏蔽了客户端对无效记录的访问,那么直到证书过期,中间人都可以进行监控。而由于当前CA验证和签发证书大多手动,证书有效期往往在一年到三年。

Let's Encrypt 签发的证书有效期只有90天,甚至希望缩短到60天。有效期越短,泄密后可供监控的窗口就越短。为了支撑这么短的有效期,就必须自动化验证和签发。因为自动化了,长远而言,维护反而比手动申请再安装要简单。

自动化的好处还有: - 子域名可以各自申请证书,不一定需要星号证书,进一步限制泄密的后果 - 由客户端生成证书,私钥不会暴露在互联网上,降低泄密概率

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

该证书有免费申请网址,只是是手动的,不是特别方便,所以创建了该自动化批量申请程序方便大家,也请大家多多支持。

为便于各位跨平台需求,现放出源码,各位在自己的平台上搭建golang语言环境,然后运行go build进行编译生成就可以了。

现在贡献出自动化申请证书工具,只需要配置config.json

{
  "domain":[
    "www.test.com",
    "test.com",
    "mail.test.com"
  ],
  "checkPath":"F:/xampp/htdocs/nqc/.well-known/acme-challenge",
  "savePath":"./",
  "SleepTime":0,
  "code":"123456"
}

domain: 申请证书域名列表。

checkPath: 验证文件所放目录,F:/xampp/htdocs/nqc替换为自己的服务器根目录/.well-known/acme- challenge为两级子目录,需要自己在根目录文件夹下创建,最后验证文件保存在acme-challenge目录下面。

savePath: 最后证书保存目录

SleepTime: 该字段是表示验证程序在下载好验证文件多久后开始验证,如果是在申请证书的服务器上运行该程序,该字段可以填0。否则的话需要把验证文件拷到申请证书的服务器上,然后开始验证。

code: 申请码,为了正常维护该自动化程序,特设定申请码,在不固定时期开放申请码免费批量申请,过后申请码请打赏,打赏时留下邮箱,邮箱回复申请码,谢谢支持。(优惠期间原价50元现10元一个申请码)

mm_reward_qrcode_1516414105613

Releases

No releases published

Packages

No packages published

Languages