momo zone

调核人的blog

letsencrypt免费证书

概念

Letsencrypt是一个免费的CA,它的出现标志着SSL/TLS加密的普及和互联网内容的加密将成为标准配置(mozilla之前曾宣称要逐步淘汰http)。它由互联网安全研究小组(ISRG)提供服务,包括电子前哨基金会(EFF)、mozilla基金会、akamai(最大的CDN厂商)、cisco等成员创建。大部分操作系统和浏览器默认不安装他的CA根证书,为了克服这个困难,letsencryptCA根证书已经和其他的CA 进行了交叉认证。


Letsencrypt的意义不仅仅是在于免费,更重要的是应用了一种新的、自动化的证书签发机制叫做自动证书管理环境–ACME。常规的证书申请流程都是手动的,通过域名、邮件的交互,其间根据CA的要求进行复杂的审核。Letsencrypt提供了可移植、方便部署的证书管理工具,即使没有人工干预也能快速的申请、签发、部署证书,甚至只需要一个带有几个参数的命令。影响一个产品普及的障碍也许是价格,功能,易用等方面,但就目前低阶的Dv证书而言易用是个人或小团体购买和部署SSL/TLS最大的障碍,而letsencrypt的目标之一就是长期致力于改善和消灭该障碍。

Let’s Encrypt的关键原则是:

  • 免费:任何拥有域名的人都能免费得到一个受信任的证书
  • 自动化:运行在Web服务器上的软件(即官方提供的客户端)能与Let’s Encrypt交互,毫不费力地获取一个证书,安全地配置使用它,自动处理续期
  • 安全:Let’s Encrypt将会作为高级TLS安全最佳实践的一个平台,不论是在证书颁发机构方面还是帮助网络维护者正确地保护他们的服务器方面
  • 透明:所有颁发和撤回的证书都有公开记录,任何人都可以检查
  • 开放:自动颁发和续期协议将会公开为一个开放的标准,其他人也可以采用
  • 合作:就像底层的网络那样,Let’s Encrypt是一次使社区受益的共同努力,不受任何一个组织的控制

 

发展历史

2012年,Mozilla的两个员工发起Let’s Encrypt项目;
2013年5月,ISRG成立;
2013年6月,电子前哨基金会和密歇根大学参与的一个项目合并进来;
2014年11月18日,Let’s Encrypt宣布公开;
2015年1月28日,ACME(Automatic Certificate Management Environment)协议提交到IETF(互联网工程任务小组)请求标准化;
2015年4月9日,ISRG和Linux基金会宣布合作;
2015年6月初,根证书和中间证书生成;
2015年6月16日,宣布最终发布计划:7月27日颁发第一个证书,然后经过一个限量发行期测试安全性和伸缩性,若进展顺利,公共服务预计在9月14日开始提供;
2015年8月7日,推迟发行计划以提供更多时间确保系统安全性和稳定性:9月14日颁发第一个证书,11月16日提供公共服务。与IdenTrust的交叉授权预计会在Let’s Encrypt向公众开放时可用;
2015年9月14日,颁发了第一个证书给域名helloworld.letsencrypt.org
同日,ISRG向Mozilla, Microsoft, Google, Apple提交了根应用申请(英文为root program applications,不确定翻译的对不对);
2015年11月12日,宣布推迟公开服务时间,第一次公测会在12月3日开启;
2015年12月3日,开启公测。

 

申请频率有限制,目前为:

  • 申请限制:每个IP每3小时不超过10次
  • 证书数量限制:每个域名(按二级域名计,子域名的证书也计入二级域名),每7天不超过5个

 

使用

Git clone https://github.com/letsencrypt/letsencrypt

首先确认系统没有安装http服务器软件,比如apache,否则下面的流程可能会不太相同。执行./letsencrypt-auto –help,他将依据当前的发行版自动安装依赖(主要是python的模块)加上-v参数可以看到后台具体在干什么,其中的python-virtualenv目的是要构成letsencrypt的一个运行时环境。一旦完成运行时的建立,将打印帮助信息。以后再执行letsencrypt-auto将直接调用运行时环境中的letsencrypt脚本,比如/root/.local/share/letsencrypt/bin/letsencrypt。注册好域名,确认主机可被访问(家用宽带需要DMZ或端口映射),然后执行/root/.local/share/letsencrypt/bin/letsencrypt certonly -d xxx.com -d 1.xxx.com -d 2.xxx.com
xxx.com可以不用写,因为这种情况下CN会自动包含域),运气好的话会出现以下内容:

IMPORTANT NOTES:

– Congratulations! Your certificate and chain have been saved at

/etc/letsencrypt/live/xxx.com/fullchain.pem. Your cert will

expire on 2016-03-11. To obtain a new version of the certificate in

the future, simply run Let’s Encrypt again.

– If like Let’s Encrypt, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate

Donating to EFF: https://eff.org/donate-le

说明证书已经到手,放在/etc/letsencrypt/live/,有效期3个月。对比传统的证书申请方式,可以体会到巨大的便捷。当然运气不好的话可能与域名服务商或域名配置有关,或者是letsencrypt脚本的bugCA 服务器的问题,在成功拿到证书之前也遇到了几次问题,好在log还是能够帮助我解决问题的。

使用如下命令可以查看生成的证书及证书链

openssl x509 -in /etc/letsencrypt/live/xxx.com/cert.pem -noout -text


进阶

前面讲过最简单的申请方式,差不多就一个命令行。如果需要自定一个csr再申请证书就会多出一些步骤。

openssl req -nodes -newkey rsa:2048 -sha256 -outform der -keyout priv.key -out cert.csr -subj ‘/C=US/ST=Texas/L=Houston/O=Hewlett-Packard Company/OU=ISS/CN=xxx.com’ -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf “[SAN]\nsubjectAltName=DNS:1.xxx.com,DNS:2.xxx.com”))

要求生成的csr必须是der格式,而且subjectaltnameSAN)必须存在,否则就会报”授权列表”不存在的错误。

之后可以用以下命令查看csr的文本

openssl req -text -noout -inform der -in cert.csr

如果已有pem格式的csr可以用以下命令转换成der格式

Openssl req -inform pem -in cert.csr -out cert-1.csr -outform der

最后申请签发证书

./letsencrypt-auto –standalone certonly –csr cert.csr

末尾加auth

部署

这里以suse13.2apache2为例

将服务器证书已经信任链证书copy/etc/apache2/ssl.crt/目录

将服务器私钥copy/etc/apache2/ssl.key/目录

Cp /etc/apache2/vhosts.d/vhost-ssl.template /etc/apache2/vhosts.d/vhosts-ssl-1.conf #这将启用ssl的虚拟主机

编辑/etc/apache2/vhosts.d/vhosts-ssl-1.conf,新增/反注释一下内容:

SSLCertificateFile /etc/apache2/ssl.crt/证书.crt

SSLCertificateKeyFile /etc/apache2/ssl.key/私钥.key

SSLCertificateChainFile /etc/apache2/ssl.crt/信任链证书.crt

还没完,会发现并没有监听443,原因是服务器虽然默认启用了ssl的模块(执行a2enmod ssl看到的),但还没有在服务器启用的时候增加ssl参数,可以通过a2enflag SSL启用。

HP GEN8 ILO 证书导入要点

ILO4要求information->overview->iLO HostnameAdministration->security->ssl certificate->common name(CN)完全一致,包括大小写(建议都写小写)

前者在Network中可以设置。

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: