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

錯誤原因:相關政策禁止為此域名簽發證書

參考鏈接

  1. Coding Pages的官方文件:Coding Pages 常見問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM