Hexo瞎折腾系列(7) - Coding Pages申请SSL/TLS证书错误
问题
今天我的个人站点SSL/TLS证书到期,我的证书是由Coding Pages提供的,每次申请成功后有效期是三个月,证书到期后可以继续免费申请。但是当我登陆进入Coding Pages服务的后台并点击申请证书时,竟然报错了!!
我重新点了申请,几秒后依然报错,并提示我半小时只能申请一次。我查看了下报错的提示信息,如下:
urn:acme:error:unauthorized:Invalid response from http://exmaple.com/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: xxxxxxxxx
一时间也不明白是怎么回事,因为我第一次申请的时候不用几秒钟就成功了,由于报错信息中包含了本静态博客的部署时间,我以为可能存在部署时间的校验,于是重新部署了一下,半小时后继续申请,依然报同样的错误。
好吧,有事就问度娘,百度了一下,发现了Coding Pages的官方文件:Coding Pages 常见问题
这时候按照官方文件的指引,找到了和我一样的错误信息的解决方案:
错误原因:无法获取正确的域名验证信息
解决方式1:检查 DNS 的 CNAME 记录是否设置正确,静态 Pages 为 pages.coding.me,动态 Pages 为 pages.coding.io
解决方式2:检查域名的 DNS 是否将海外线路解析到 Coding Pages 的服务器
因为Coding Pages的静态Pages是免费的,而动态Pages是收费的,对于用Hexo搭建的静态站点,自然是选择免费的静态Pages服务就足够了。于是解决方式1对我来说就不存在了,接着联想到之前我对部署在GitHub Pages上的个人站点进行了自定义域名绑定+域名解析设置,有些豁然开朗的感觉。
分析
由于我的个人站点是同时部署到GitHub Pages和Coding Pages上的,接着在阿里云域名解析里进行了配置:默认的解析线路将我的域名指向pages.coding.me,国外的解析路线则是指向了lewky.github.io。
之所以这样配置,是因为国内部分地区无法直接访问GitHub,自然就无法访问我部署在GitHub上的个人站点,于是我又选择了Coding.net的Pages服务,这样国内用户就可以快速访问到我部署在Coding Pages的个人站点,而国外用户则是快速访问到Coding Pages上的个人站点。
问题就出现在这里,因为我第一次申请SSL/TLS证书的时候,还没有解析境外的线路,所以很快就申请成功了。后来添加了国外线路的解析,这导致在Coding Pages的后台申请证书时无法通过验证,自然就申请失败了。
分析到这里,我也基本知道怎么解决这个错误了。
解决方法
由于我是在阿里云购买的域名,于是登陆到阿里云域名解析的后台系统,打开个人域名的解析设置,暂停对于境外线路的解析。这里暂停就行了,一般来说大概需要5分钟左右的生效时间,毕竟DNS解析是存在缓存的。
五分钟后,我又进入Coding Pages服务的后台,再一次申请SSL/TLS证书,果不其然,几秒钟后我申请证书成功,又给续了三个月。
最后,再次返回阿里云域名解析的后台,将境外解析的线路再次启用,嗯,完美。
其他的申请错误
这里罗列下申请证书时所有可能遇到的错误与解决方案,以备不时之需。
错误类型:urn:acme:error:connection
1、错误信息:DNS problem: NXDOMAIN looking up A for example.com
错误原因:域名不存在
解决方式1:检查域名是否填写正确
解决方式2:到域名注册商处检查是否设置了 DNS 服务器
解决方式3:咨询 DNS 服务商是否支持解析该域名
2、错误信息:DNS problem: SERVFAIL looking up A for exmaple.com
错误原因:DNS 解析 A 记录出错
解决方式1:到域名注册商处检查是否设置了 DNS 服务器
解决方式2:咨询 DNS 服务商是否屏蔽了 Let’s Encrypt 的解析请求
3、错误信息:DNS problem: SERVFAIL looking up CAA for example.com
错误原因:DNS 解析 CAA 记录出错
解决方式1:到域名注册商处检查是否设置了 DNS 服务器
解决方式2:咨询 DNS 服务商是否支持解析 CAA 记录
4、错误信息:DNS problem: query timed out looking up A for exmaple.com
错误原因:DNS 解析超时
解决方式1:到域名注册商处检查是否设置了 DNS 服务器
解决方式2:咨询 DNS 服务商是否屏蔽了 Let’s Encrypt 的解析请求
解决方式3:重新申请
解决方式4:检查域名的 DNS 是否将海外线路解析到 Coding Pages 的服务器
5、错误信息:Fetching http://exmaple.com/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: xxxxxxxx
错误原因:获取域名验证信息失败
解决方式1:重新申请
解决方式2:请确认是否启动了 DNS 的分区解析。如果有则要把国外的解析记录也设置成 CNAME 至 pages.coding.me。SSL 证书是通过 Let’s Encrypt API 申请。申请证书前需要验证域名,而 Let’s Encrypt 位于国外,所以需要保证 Let’s Encrypt 能通过您的域名正常访问到 Coding Pages 服务器以读取验证信息。
错误类型:urn:acme:error:malformed
错误信息:Error creating new authz :: Name does not end in a public suffix
错误原因:域名不以公共后缀结尾
解决方式:咨询域名注册商
错误类型:urn:acme:error:unauthorized
1、错误信息:Invalid response from http://exmaple.com/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: xxxxxxxxx
错误原因:无法获取正确的域名验证信息
解决方式1:检查 DNS 的 CNAME 记录是否设置正确,静态 Pages 为 pages.coding.me,动态 Pages 为 pages.coding.io
解决方式2:检查域名的 DNS 是否将海外线路解析到 Coding Pages 的服务器
2、错误信息:The key authorization file from the server did not match this challenge
错误原因:无法获取正确的域名验证信息
解决方式1:检查 DNS 的 CNAME 记录是否设置正确,静态 Pages 为 pages.coding.me,动态 Pages 为 pages.coding.io
解决方式2:检查域名的 DNS 是否将海外线路解析到 Coding Pages 的服务器
3、错误信息:Error creating new authz :: “example.com” was considered an unsafe domain by a third-party API
错误原因:无法获取正确的域名验证信息
解决方式:使用 https://transparencyreport.google.com/safe-browsing/search 查看域名存在的安全隐患,按照说明进行清理,清理完后到 https://www.stopbadware.org/ 提交审查请求。审查通过后,回到 Coding Pages 重新申请证书
错误类型:urn:acme:error:unknownHost
错误信息:No valid IP addresses found for example.com
错误原因:找不到可用 IP 地址
解决方式1:检查 DNS 的 CNAME 记录是否设置正确,静态 Pages 为 pages.coding.me,动态 Pages 为 pages.coding.io
解决方式2:检查域名的 DNS 是否将海外线路解析到 Coding Pages 的服务器
解决方式3:咨询 DNS 服务商是否屏蔽了 Let’s Encrypt 的解析请求
错误类型:urn:acme:error:rateLimited
错误信息:Error creating new cert :: too many certificates already issued for exact set of domains: example.com
错误原因:证书申请数目超出限制
解决方式:下周再重新申请,详情见 https://letsencrypt.org/docs/rate-limits/
错误类型:urn:acme:error:rejectedIdentifier
错误信息:Error creating new authz :: Policy forbids issuing for name
错误原因:相关政策禁止为此域名签发证书
参考链接
- Coding Pages的官方文件:Coding Pages 常见问题
Hexo瞎折腾系列(7) - Coding Pages申请SSL/TLS证书错误的更多相关文章
- Hexo瞎折腾系列(9) - 网页标题崩溃特效
前言 本系列的所有修改均基于本系列第一篇中的新增文件(譬如custom.js),请先自行阅读Hexo瞎折腾系列(1) - 准备工作与简单美化:并按照文章所说自行修改代码或文件. 为网页添加标题崩溃特效 ...
- Hexo瞎折腾系列(1) - 准备工作与简单美化
前言 网上有不少相关的帖子,不过版本会比较旧,而不同版本可能存在代码不同的问题,不过大部分还是大同小异,本系列就不啰嗦重复了,基本只会按照本人所使用的版本以及个人所使用到的内容来进行介绍. 该系列是对 ...
- Hexo瞎折腾系列(6) - 将博客同时部署到Github和Coding
前言 由于本人只是将Hexo博客同时部署到 Github 和 Coding.net ,所以这里只介绍怎么同时部署到这两个网站的pages. 之所以选择这两个网站,是因为国外用户可以访问 Github, ...
- Hexo瞎折腾系列(8) - 添加评论系统
前言 Hexo的NexT主题本身就集成了一些评论系统,多说啊之类的已经关闭服务的略过不提,目前比较多人用的有畅言.来必力livere.Gitment.Gitalk.Disqus等. 我刚用的评论系统的 ...
- Hexo瞎折腾系列(5) - 使用hexo-neat插件压缩页面静态资源
为什么要压缩页面静态资源 对于个人博客来说,优化页面的访问速度是很有必要的,如果打开你的个人站点,加载个首页就要十几秒,页面长时间处于空白状态,想必没什么人能够忍受得了吧.我个人觉得,如果能把页面的加 ...
- Hexo瞎折腾系列(2) - 添加背景图片轮播
动态背景图片插件jquery-backstretch jquery-backstretch是一款简单的jQuery插件,可以用来设置动态的背景图片,以下是官方网站的介绍. A simple jQuer ...
- Hexo瞎折腾系列(4) - 站点首页不显示文章全文
文章摘要设置 打开主题配置文件 _config.yml 文件,找到如下: # Automatically Excerpt. Not recommend. # Please use <!-- mo ...
- Hexo瞎折腾系列(3) - 添加GitHub彩带和GitHub Corner
页面右上角添加GitHub彩带 你可以在这里找到一共12种样式的GitHub彩带,复制其中的超链代码. 在themes\next\layout\_layout.swig目录下找到头部彩带相关的代码: ...
- iOS https认证 && SSL/TLS证书申请
1.下面列出截止2016年底市面上常见的免费CA证书: 腾讯云SSL证书管理(赛门铁克TrustAsia DV SSL证书)阿里云云盾证书服务(赛门铁克DV SSL证书)百度云SSL证书服务Let's ...
随机推荐
- Android学习笔记(十)——使用意图链接活动
使用意图链接活动 1.新建一个名为"UsingIntent"的项目,右击src目录下的包名,选择New-->Class选项.并将新的类文件名称命名为"SecondA ...
- 用python编写的定向arp欺骗工具
刚学习了scapy模块的一些用法,非常强大,为了练手,利用此模块编写了一个arp欺骗工具,其核心是构造arp欺骗包.加了一个-a参数用于进行全网欺骗,先暂不实现.代码如下: #--*--coding= ...
- (转)使用MAT比较多个heap dump文件
使用MAT比较多个heap dump文件 调试内存泄露时,有时候适时比较2个或多个heap dump文件是很有用的.这时需要生成多个单独的HPROF文件. 下面是一些关于如何在MAT里比较多个heap ...
- Python调用C/Fortran混合的动态链接库--中篇
接下来,介绍一个简单的例子,从fortran中传递并返回一维自定义结构体数组到python注意点:1.fortran新标准支持可分配数组作为变量传入并在subroutine或function分配后返回 ...
- app发布流程
在app上架之前做两件事(instruments,profile): 1.代码静态分析:不用运行程序,直接检测代码有没有潜在的一些内存泄漏 2.动态分析:a l loctions/leaks 内存溢出 ...
- 李雅普诺夫函数 LyapunovFunction 李雅普诺夫意义下的稳定性
https://zh.wikipedia.org/zh-hans/李亞普諾夫函數 李雅普诺夫函数(Lyapunov function)是用来证明一动力系统或自治微分方程稳定性的函数.其名称来自俄罗斯数 ...
- Axure Base 10 动态面板滑动效果
示例原型:http://pan.baidu.com/s/1mgjYahi 实现目标: 1. 点击登录滑出登录面板 2. 点击确定滑出动态面板 最终效果如下: 这种效果可以通过两种方法实现: 首先准 ...
- JSON和JavaScript对象
var obj={width:100,height:200},这样的并不叫JSON,并且JSON只是一种数据格式,并不是具体的实例. 但很多人把这样的JS对象当成JSON,下面把这个问题讲清楚 一.J ...
- Java,多个线程对同一个数据源的访问
当多个线程对同一个数据源进行访问时,应对线程同步或加锁.为何?举个简单的例子:有一个共享的数据源dataSource,其值为0.有两个线程,Thread1和Thread2.Thread1的任务是将da ...
- CodeChef:Little Elephant and Colored Coins
类似墨墨的等式 设f[2][j][k]表示a[i].c是否和当前颜色相同,到当前枚举到的颜色为止,颜色数为j,对mnv取模为k的最小数 这是个无限循环背包,用spfa优化 #include<cs ...