Let's Encrypt是一个由电子前哨基金会、Mozilla基金会、Akamai、密歇根大学、思科联合发起的一个项目。它旨在为站长提供一个免费的、完全自动化的证书申请过程,从而让整个互联网都能享受到HTTPS加密。Let’s Encrypt的证书申请过程非常简单、安全、快速、自动化并且免费。Let’s Encrypt是一个中间CA,它的CA证书由IdenTrust签发。IdenTrust是一个Root CA,受到所有主流浏览器的信任。从2015年10月后,Let’s Encrypt的中间CA证书被chrome、Firefox、Microsoft Edge、Safari和Opera所信任。
最近官方做了调整,简化了获取证书的难度,并将项目名改为了certbot,以前叫letsencrypt。certbot可以自动化的申请,安装和更新证书。
OneinStack已经内置Let's Encrypt,vhost.sh绑定域名时自动申请、绑定、自动续期(默认90天)一步到位,教程如下:
安装
- wget http://mirrors.linuxeye.com/oneinstack.tar.gz
- tar xzf oneinstack.tar.gz
- cd oneinstack
- ./addons.sh
如下图:
出现绿色Let's Encrypt client install successfully!即表示certbot安装成功,如下图:
使用证书
vhost.sh绑定域名ssl选择y,Let's Encrypt选择y
- ./vhost.sh
注意事项
- 最新版oneinstack关闭Congratulations,默认跳过即成功
- 绑定定域名后会自动在crontab添加相应自动续期脚本
- 同一个ip在3小时内最多申请10个域名的证书
- 同一个根域名在七天内,只能注册5个证书。同一个子域名注册或更新都是要计算次数的
Mon Jun 20 23:06:17 CST 2016
1F
支持一下。~
2F
很不错的功能,赞
3F
Do you want to use a Let’s Encrypt certificate? [y/n]: y
DNS problem: NXDOMAIN looking up A for xxx.com
为什么呀,老大?
B1
@ 老板 必须指定域名加A纪录
B1
@ 老板 我这边也是遇到这个问题,但是我DNS A记录有解析到服务器,但依旧提示这个错误
B2
@ qqoo 解析没生效。
B3
@ yeho 我也是这个问题,解析到了服务器,也过了一天多,再绑定域名还是这个问题
B4
@ Jc 重新下载vhost.sh试试
B4
@ Jc 这问题有解吗? 目前也是卡在这边。
4F
这个不支持centos 7 吗?
B1
@ skysmile 支持
5F
Installing Python packages …
卡住这一步,无法进行
B1
@ ricemouse 等,
6F
输./vhost.sh之后没有do you want 这行出现
B1
@ Yorke ./addons 安装certbot
7F
https 配置出现绿色后,然后执行,./vhost.sh 没有出现选择lets 证书的提示
B1
@ https加密 ./addons.sh 先安装certbot客户端
B2
@ yeho 1.cretbot 客服端已经安装成功, 绿色 successfu 提示成功了
8F
我的是oneinstack部署的LNAMP怎么搞阿,支持吗?用的NGINX+APACHE ,这个支持吗?还有老大,你这个解锁的插件叫啥子名字?
B1
@ king 支持
9F
先用了./vhost.sh添加server,也选了要绑SSL。
才发现还要先用./addons.sh装Let’s Encrypt client。
请问二者先后顺序有影响吗?
我网站目前还无法连上,不确定是安装顺序的影响或是防火墙或SELINUX也须要做什么设定的关系
若果真是先后顺序的关系,该如何补救?
想到删除网站再重跑一次./vhost.sh,但已经申请了的证书怎么办?
B1
@ Amos 如果用let’s Encrypt 必须先addons.sh 先安装客户端后 vhost.sh才会出现选项!
B2
@ yeho 谢谢回答,不好意思再请问:
1. 先addons.sh 安装客户端→vhost.sh添加server绑SSL→防火墙开放https或port 443后,还须要做什么动作才能成功拜访https网页吗?
例如配置CA证书的位置,或是把CA证书的own/grp从root改成www?
2. 我目前有一个公网IP,是在router后面用VirtualBox开一台Linux架Nginx,
已在DNS设定domain name的A指向公网IP,
再用Forward Rules将公网IP指向虚拟机的内网IP 192.168.0.X
请问以这样的IP环境,用OneinStack安装的Nginx既已是TLS SNI support enabled,是不是就支援一IP多HTTPS站点了?可以为同一IP下的多个server各自配置CA证书?
B3
@ Amos 支持。不需要其它配置
10F
请问 脚本 多久续期一次!!
B1
@ 请问 默认每周一续费一次,具体请看计划任务(命令:crontab -l)
B2
@ yeho 我先开始 担心 是3个月 低 才续费的! 一个周。。 感觉有点频繁了 虽然是免费的 个人角度 应该 也要节制的 感觉2个月左右 就 刚刚好~ 个人 观点 – -!
B3
@ 请问 可以自己改,影响不太,不会被封。let’s服务器在国外,防止网络问题。而且crontab 可以自己改。
B4
@ yeho 证书脚本 怎么 木有 自动续期….
B4
@ 您好@ 一个星期一次
B4
@ yeho 已经两个星期了 证书 日期 还是原来的。。
B4
@ 你好 crontab -l 手工触发下
B4
@ yeho crontab -l 已经尝试。。。 请问吧博主大大 有没有办法 手动执行有一些 crontab 进程 让他 立马执行。。
B2
@ yeho 因为 我的网站 加有 支持 https的cdn 每次 都要去更换证书 感觉有点麻烦 博主大大 有法子 改改更新频率时间吗~
11F
用的 lnmp、lamp、lnmpa一键安装包 能不能用这个ADDONS.sh
B1
@ Qa 内置有的
B2
@ yeho 今天才看到留言,已经找到一款脚本也不错。
B3
@ Qa 你好,你也是安装了lnmp一键包么?请教你是怎样安装Let’s 证书到lnmp的 谢谢,vhost的时候可以设置么?谢谢
12F
Installing python packages 不动了。。
B1
@ 沧澜博客 等
B2
@ yeho 等待成功。
B2
@ yeho 等了3小时还没好,怎么破?腾讯云主机+Centos 7.2
B3
@ abCdGJJ 没办法。国内网络
13F
安装完证书之后,http不自动跳转https,手动输入https之后,整个博客不加载css文件,版面乱码。希望博主能够释疑。
14F
希望能说说如何替换旧的其他的证书,并且自动续费什么的。还有就是这个确实可以让chrome认可么?我测试的直接提示不安全,是不是刚刚申请他们证书的原因?最后以为没有设置对,直接在第一步选择了n,后期该如何换成他的?因为自己的conf中有别的设置,直接用脚本的话恐怕会影响原来的conf中的设置。受累了
B1
@ 邢台网站建设 提示不安全是你本身代码里面有非https静态资源
15F
中文域名是不是就是按那个Punycode编码写?证书信息中能不能出现中文??
16F
这个工具很好,尤其对于要部署SSL的来说很简单。
17F
–2016-08-20 23:59:02– (try: 6) https://dl.eff.org/certbot-auto
Connecting to dl.eff.org|173.239.79.196|:443… failed: Connection timed out.
Giving up.
certbot-auto download failed, Please contact the author!
这是装自动安装的ssl的那个脚本,一直装不上。。
然后装Oneinstack的时候,JDK安装失败。
B1
@ ITYOY 安装let’s Encrypt下载超时 ,没办法,网络问题。
B2
@ yeho 恩恩呐。。今儿重装了一次好了,直接上了H2 哈哈哈哈 开心开心~~
18F
都测试ok,访问网站浏览器提示访问风险??
B1
@ admin111 这是你网站代码里面有静态资源是http请求,都改成https即可
19F
DNS problem: NXDOMAIN looking up A for awenzi.win
这是什么原因啊
B1
@ 龙文voice A急了没生效,域名必须解析到指定服务器IP,不能加cdn等
B2
@ yeho 哦,好的谢谢
B2
@ yeho 我把NS交到dns.he.net的 win7e.com 但是还是提示这个
B3
@ thriken 和当时网络情况有关系
20F
显示安装成功,可还是用不了。
B1
@ Fengtalk 签名时候报什么错误?
21F
感谢分享 十分需要
22F
同样2个主机 一个在oneinstack下 配置 一步到位
另一个AMH还在折腾。。。
23F
Let’s Encrypt 显示安装成功,但是vhost.sh的时候没有出现“Do you want to use a Let’s Encrypt certificate”,查了下,/usr/local/bin/certbot-auto是有的,环境是centos7.2
B1
@ hahaxixi 我是cent6.5,也没出现:
Do you want to use a Let’s Encrypt certificate
B2
@ 独狼 没安装成功,addons.sh重复安装 Let’s Encrypt 客户端试试
B1
@ hahaxixi 我也是是这个问题
24F
Let’s Encrypt, 添加网站后提示填写国家城市等信息, 填写之后就失败.
用的搬瓦工VPS, centos7.
但是我换成centos6后就成功.
请问是为什么?
B1
@ luck 和当时网络情况有关系
25F
求助, Let’s Encrypt安装失败[img][/img]
B1
@ luckywave 重复执行几次,可能网络差
26F
怎么自动续期?
B1
@ 林先生 默认vhost.sh设置会自动加计划任务。
27F
Creating virtual environment…
Installing Python packages…
阿里云,同样卡在这里了。
B1
@ 陆执影 国内网络慢,没办法,重复几次试试
28F
最后是302跳转吗?
29F
Apache2.2
添加虚拟主机单域名或双域名都是最后失败 报服务器内部错误。
B1
@ 梦天 我怎么看看?
30F
我感觉这个并不会自动续期,手动触发好像也不行,还望指点!
B1
@ ncepuzs 如果刚刚获取证书手工触发不一定会更新,你可以加参数强制更新试试
B2
@ yeho 请教如何手动触发更新续期呢?
B3
@ a crontab -l 手工触发试试
31F
失败了
Failed authorization procedure. firefoxfine.ml (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://domain.com/.well-known/acme-challenge/VdHlyd-JsCzYBI8tCUUpOiiZPxdzG4W5dItu0: ”
body{background-color:#FFFFFF}”, http://www.domain.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.domain.com/.well-known/acme-challenge/v7Mppl6HZTPk0qYCWE: ”
body{background-color:#FFFFFF}”
Error: Let’s Encrypt SSL certificate installation failed!
B1
@ link apache还是?
B2
@ yeho nginx 是
B1
@ link 我也遇到一样的问题,请问你解决了吗
32F
Let’s Encrypt安装成功
但是vhost添加站点时在输入完邮箱按enter后报错
ConnectionError: (‘Connection aborted.’, BadStatusLine(“””,))
Error: Let’s Encrypt SSL certificate installation failed!
求解,服务器是阿里华东2
B1
@ Tonyski nginx还是apache ?
B2
@ yeho 装的大神你的lnmp,用的是nginx,
我以前用香港的服务器没问题,换成国内的不知道为啥出问题了
33F
我想问一下在备案中的网站是不是安装Let’s Encrypt不成功
B1
@ 大树哥哥 不影响
34F
安装出现了这个错误, Debian8.0 lnmp
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
./vhost.sh: line 174: 14664 Hangup /etc/init.d/nginx reload > /dev/null
Failed authorization procedure. http://www.domain.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.domain.com/.well-known/acme-challenge/O7Eo_4xDhY-8-GykZZ2vgWGTgGMQohSfn3806gOhFlU: ”
body{background-color:#FFFFFF}”
B1
@ 大树哥哥 现场是否保留,方便服务器ssh ip看下吗?
B2
@ yeho 是因为我的网站在阿里云备案期间,所以DNS有问题,现在好了
35F
请问咱这个证书设置有续期的脚本吗? 因为我的已经到期了,但是未自动续期,请问下怎么设置部署他更新,并且自动续期呀?
36F
我已解决 删除了conf文件 重新创建的 已经更新了证书期限,但是请问下 按照以上安装方式 老大您不是设置好了自动续期吗为啥没有执行呀? 还是说我哪里设置错了?
B1
@ 可乐、 crontab -l 手工执行里面命令试试
37F
Let’s Encrypt可以申请ecc证书的
38F
出现错误 Failed authorization procedure. llixxx.cn (http-01): urn:acme:error:connection :: The server could not conn
ect to the client to verify the domain :: Could not connect to llixxx.cn, http://www.llixxx.cn (http-01): urn:acme:
error:connection :: The server could not connect to the client to verify the domain :: Could not connect t
o http://www.llixxx.cn
Error: Let’s Encrypt SSL certificate installation failed!
怎么回事哦,是为在备案吗?腾讯云的。
B1
@ helsing llixxx.cn, http://www.llixxx.cn是否都A记录解析到这台服务器?
B2
@ yeho 好滴,谢谢。测试中
39F
如果是多版本PHP ,那是不是 修改/oneinstack/options.conf PHP的目录. 第一次 安装PHP5.,运行addons.sh No.7 安装一次.
在去修改/oneinstack/options.conf PHP安装路径. 在运行 addons.sh No.7
这样 就是多版本 SSL 证书了?
还是只要运行一次就行了?
B1
@ CC php多版本和nginx ssl没关系
40F
liunxeye您好,这个脚本证书更新周期是几天呢?证书是按每个域名生成时间的独立更新吗? 主机上的域名不会是同时更新吧! 谢谢
B1
@ FANTASY 默认一个星期执行更新,但是不一定每次更新,执行如下命令,强制更新(小心被封):
/usr/local/python/bin/certbot renew --force-renewal --renew-hook "/etc/init.d/nginx reload"
41F
前端时间使用这个脚本加上SSL证书了,近期收到邮件提示要过期,然后看了下,发现crontab里的自动定时更新好像没用。然后手动执行强制更新发现也无法自动续期,并报如下错误(网站域名做了隐藏):
Attempting to renew cert from /etc/letsencrypt/renewal/www.xxx.com.conf produced an unexpected error: Failed authorization procedure. http://www.xxx.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.xxx.com/.well-known/acme-challenge/o1d8m2O5UpI3EQLxJNi054hEtOHGS49KRrdqxDXfC5B: ”
404 Not Found
404 Not Found
“. Skipping.
请教下yeho,这个是脚本有问题还是啥原因,好像需要访问 .well-known 这个目录。
重装 Let’s Encrypt client 可以解决么?
B1
@ mythology 网站根目录下的.well-known被删掉了吗? 可以重装let’s Encrypt client解决
B2
@ yeho .well-known目录还在。是这样的,先用vhost脚本添加了域名,然后直接就添加了ssl,此时网站本目录还是空的,所以添加ssl是没问题。然后把网站代码git过来后,由于网站用了框架,所以再更新时,是通过浏览器是无法访问到网站根目录的,访问的框架重新定义的根目录,此时是无法访问到.well-known目录的,所以此时更新就失败了。
B3
@ mythology 针对上面的问题,了解了 certbot 后,知道了原因所在:certbot 会通过访问 example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器。但如果用了框架或者微服务的架构,可能就不能直接访问根目录或者没有根目录了。
解决方案:
1.把 /etc/letsencrypt/renewal/www.xxx.com.conf 配置文件中的 authenticator=webroot 改为 authenticator=standalone;(standalone 这种模式不需要指定网站根目录,它会自动启用服务器的443端口,来验证域名的归属,所以如果443被占用,需先停止其服务)
2. 关闭 nginx;
3. 执行更新脚本;
4. 重启 nginx 即可;
已测试Ok
42F
试了好几次都是这样?
Please enter Administrator Email(example: admin@example.com): 106507@qq.com
nginx: [warn] conflicting server name “txy.var123.cn” on 0.0.0.0:80, ignored
Failed authorization procedure. txy.var123.cn (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://txy.var123.cn/.well-known/acme-challenge/3s4DKyM-K3jwRmIxNOoZGFhzvcyfIrLfNvfgmIUoupg: ”
404 Not Found
404 Not Found
”
Error: Let’s Encrypt SSL certificate installation failed!
B1
@ Real .me 如果之前绑定了域名,先删除再执行vhost.sh绑定,提示重复绑定域名冲突
43F
明明已经安装上,但是却说不找到这下面的一个文件。在add脚本已经执行了很多次7,install了
Failed authorization procedure. g.abcdocker.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://g.abcdocker.com/.well-known/acme-challenge/RUfMCOKbQ358zc6_tg5imoIBNcw1-IULTo5VFkYpBi8: ”
404 Not Found
404 Not Found
”
Error: Let’s Encrypt SSL certificate installation failed!
B1
@ abcdocker 验证文件删掉了吧?
44F
照着上面的教程做也失败了….
Failed authorization procedure. http://www.cupoftea.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.cupoftea.com/.well-known/acme-challenge/U2wHchHGrZ6xWLS6epTBLek9SvvbWzVIdU1o8dbBdmk: ”
body{background-color:#FFFFFF}”
Error: Let’s Encrypt SSL certificate installation failed!
B1
@ Forwards 是否把.well-known删了或者指定路径不能访问导致验证失败?
45F
Yeho,你好。 关于泛解析域名申请SSL想请教您:
添加主机的时候用了一个泛解析域名,类似:主域名aaa.com 附加域名www.aaa.com *.aaa.com
到最后一步时提示:DNS problem: NXDOMAIN looking up A for *.xxx.com
域名解析时做了*的A记录指向,而且也听闻可以有 *.xxx.com这样形式的ssl证书。
问题是我究竟该如何申请/获取到证书呢?
谢谢,盼复。
B1
@ HH let’s貌似暂时不支持泛解析域名。
B2
@ yeho 据说18年会支持泛域名,到时这个脚本也会更新吧!
46F
nginx: [warn] “ssl_stapling” ignored, issuer certificate not found for certificate “/usr/local/nginx/conf/ssl/xxx.com.crt”
nginx: [warn] conflicting server name “www.xxx.com” on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name “xxx.com” on 0.0.0.0:80, ignored
Failed authorization procedure. xxx.ren (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://xxx.com/.well-known/acme-challenge/wpTjt7tkoNnr-tOSo2JKjdE_lNUFeW7HLn2SaQodSac: ”
404 Not Found
404 Not Found
“, http://www.xxx.ren (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.xxx.ren/.well-known/acme-challenge/nRXSrzpjzdC37WFhyUeIz4j_1U0N9EluelUmBjfUOiE: ”
404 Not Found
404 Not Found
”
Error: Let’s Encrypt SSL certificate installation failed!
看看nginx
B1
@ dw 解决了.安装完oneinstack删除之前的虚拟主机./vhost.sh del
然后在安装安装一遍./vhost.sh就解决了.
B1
@ dw 对应网站根目录.well-known或者这个访问不到了,导致验证不了了吧
47F
您好, 最新的lnmp (Updated: 2017-7-1)装好后, 域名获取证书时, 输完邮箱出现
ContextualVersionConflict: (idna 2.6 (/usr/local/python/lib/python2.7/site-packages), Requirement.parse(‘idna=2.5’), set([‘requests’]))
详细错误:DEBUG:certbot.log:Exiting abnormally:
Traceback (most recent call last):
File “/usr/local/python/bin/certbot”, line 11, in
sys.exit(main())
File “/usr/local/python/lib/python2.7/site-packages/certbot/main.py”, line 733, in main
plugins = plugins_disco.PluginsRegistry.find_all()
File “/usr/local/python/lib/python2.7/site-packages/certbot/plugins/disco.py”, line 203, in find_all
plugin_ep = PluginEntryPoint(entry_point)
File “/usr/local/python/lib/python2.7/site-packages/certbot/plugins/disco.py”, line 50, in __init__
self.plugin_cls = entry_point.load()
File “build/bdist.linux-i686/egg/pkg_resources/__init__.py”, line 2290, in load
self.require(*args, **kwargs)
File “build/bdist.linux-i686/egg/pkg_resources/__init__.py”, line 2307, in require
items = working_set.resolve(reqs, env, installer)
File “build/bdist.linux-i686/egg/pkg_resources/__init__.py”, line 854, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
刚开始以为是python2.66版本的问题, 升级到2.7后依旧如此, 请问要如何解决呢
系统 CentOS release 6.9 (Final) 32bit
B1
@ 请输入您的QQ号 /usr/local/python/bin/pip install requests 执行这个试试
48F
Please enter Administrator Email(example: admin@example.com): maste2shu@foxmail.com
An unexpected error occurred:
ContextualVersionConflict: (idna 2.6 (/usr/local/python/lib/python2.7/site-packages), Requirement.parse(‘idna=2.5’), set([‘requests’]))
Please see the logfile ‘/tmp/tmprRh0Q0’ for more details.
Error: Let’s Encrypt SSL certificate installation failed!
安装报错!!怎么搞
B1
@ 二师兄电务 /usr/local/python/bin/pip install requests 执行这个试试
B2
@ yeho 谢谢, Python 没接触过, 问题解决了!!!
49F
DNS problem: NXDOMAIN looking up A ,一直提示这个错误,我做了A记录了,而且能ping通域名,但是不知道为什么总是不OK。
B1
@ TOM /etc/resolv.conf 中nameserver修改看看
50F
请问一下,安装阿里云的ssl,是不是在添加域名的时候选择ssl,然后到ssl那一步选择n,域名添加成功后把阿里云的ssl文件key上传到服务器里覆盖就可以了呢!能回答一下吗?不会弄,谢谢!
B1
@ 紫气东来 ssl选择y,替换自签名证书即可。
51F
真的强大,我部署成功了,赞赞赞!
52F
你好,最新版本安装虚拟机顺便安装ssl证书出现这个错误,域名指向和解析都已经做好了
Let’s Encrypt Verify error! DNS problem: NXDOMAIN looking up A for yolaila.top
[Sat Apr 14 16:24:06 CST 2018] Creating domain key
[Sat Apr 14 16:24:06 CST 2018] The domain key is here: /root/.acme.sh/yolaila.top/yolaila.top.key
[Sat Apr 14 16:24:06 CST 2018] Single domain=’yolaila.top’
[Sat Apr 14 16:24:06 CST 2018] Getting domain auth token for each domain
[Sat Apr 14 16:24:06 CST 2018] Getting webroot for domain=’yolaila.top’
[Sat Apr 14 16:24:06 CST 2018] Getting new-authz for domain=’yolaila.top’
[Sat Apr 14 16:24:08 CST 2018] The new-authz request is ok.
[Sat Apr 14 16:24:08 CST 2018] Verifying:yolaila.top
[Sat Apr 14 16:24:11 CST 2018] yolaila.top:Verify error:Invalid response from http://yolaila.top/.well-known/acme-challenge/2yq46DaCxEAAaEkvUPFnjqpuzOzkpiiCqUYtvv5nPI0:
[Sat Apr 14 16:24:11 CST 2018] Please add ‘–debug’ or ‘–log’ to check more details.
[Sat Apr 14 16:24:11 CST 2018] See: https://github.com/Neilpang/acme.sh/wiki/How-to-debug-acme.sh
Error: Create Let’s Encrypt SSL Certificate failed!
B1
@ 枫叶吧 升级acme.sh: acme.sh upgrade
之后再试试!
53F
我已经运行表示certbot安装成功,但是后面那个步骤还是失败
B1
@ 1164880236@qq.com 现在已经切换至acme.sh管理