Let's Encrypt证书:国内服务器无法申请?国外服务器访问缓慢?你需要OCSP装订

Let's Encrypt证书:国内服务器无法申请?国外服务器访问缓慢?你需要OCSP装订

前言

最近,有V2EX的网友发现地处国内的服务器无法正常申请和续期Let's Encrypt的免费证书。最后查找原因,是因为Let's Encrypt的一个OSCP域名ocsp.int-x3.letsencrypt.org被GFW污染,解析到了以31开头的FaceBook的IP或者其他被墙IP,而不是使用Akamai CDN的Let's Encrypt的OSCP服务器上。

nslookup ocsp.int-x3.letsencrypt.org 223.5.5.5
服务器:  public1.alidns.com
Address:  223.5.5.5
非权威应答:
名称:    a771.dscq.akamai.net
Addresses:  2600:1417:76::6874:f3cb
          2600:1417:76::17d2:d741
          74.86.17.48
Aliases:  ocsp.int-x3.letsencrypt.org
          ocsp.int-x3.letsencrypt.org.edgesuite.net

ping 74.86.17.48
正在 Ping 74.86.17.48 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。
74.86.17.48 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

先让我们了解一下什么是OCSP。
在线证书状态协议(Online Certificate Status Protocol)是一个用于获取X.509数字证书撤销状态的网际协议。浏览器在访问一个https站点时,会先向CA的OCSP服务器发起请求,查询该证书是否有效,是否被吊销。当OCSP出现问题时,会有两个影响:

  1. 服务器端无法正常申请或续期SSL证书。
  2. 客户端浏览速度缓慢,尤其是Safari和IE浏览器,首次打开站点白屏的时间会大大增加。浏览器验证OCSP状态并超时需要比较长的时间,尽管OCSP请求超时还是认为证书有效,但还是会造成浏览体验大大降低。Chrome浏览器基本上不会受影响。

那我们怎么解决这个问题呢?我们可以使用OCSP装订。
OCSP装订(OCSP Stapling),正式名称为TLS证书状态查询扩展,可代替在线证书状态协议(OCSP)来查询X.509证书的状态。服务器在TLS握手时发送事先缓存的OCSP响应,用户只需验证该响应的有效性而不用再向数字证书认证机构(CA)发送请求。

网上关于Let's Encrypt启用OCSP装订的文章比较少,Hostloc也有MJJ在找教程。所以,下面我就会简单写一下国内服务器申请Let's Encrypt免费证书+Nginx服务器开始OCSP装订的步骤~

操作步骤

申请Let's Encrypt泛域名证书

下面是利用DNS API方式,使用acme.sh申请Let's Encrypt泛域名证书的步骤。DNS提供商为DNSPOD,其他主流的DNS提供商也大都能使用这种方法申请证书。

  1. 国内服务器需要先修改hosts以避免DNS污染,国外服务器则不需要。在hosts中添加一条ocsp.int-x3.letsencrypt.org的记录,将其指向下面中的一个,香港的Akamai CDN,国内访问速度不错:
    • 175.45.42.217
    • 175.45.42.209
  2. 安装acme.sh,官方文档在此 curl https://get.acme.sh | sh
  3. 在DNS控制台中申请一个API Key,记下备用。支持此方法的DNS见官方文档
  4. 输入API Id和Key 以DNSPOD为例
    export DP_Id="15**04"
    export DP_Key="ed512e50286f*********9326ec760d3d"
  5. 输入域名,申请证书 acme.sh --issue --dns dns_dp -d example.com -d *.example.com

稍微一等,Let's Encrypt泛域名证书就申请好啦!而且acme.sh会在域名过期前几天续期证书。下面讲如何配置证书,以及Nginx开启OCSP装订。

Nginx开启OCSP装订

申请到的证书存放在~/.acme.sh/example.com文件夹下,这个文件夹下面会肯定有这两个文件:

  • fullchain.cer
  • example.com.key

我们就要用到这两个文件,修改N滚下配置,并开启OCSP。
编辑Nginx配置文件,在server大括号中加入以下内容,并删除冲突的内容:

ssl_certificate /[用户名]/.acme.sh/xmgspace.me/fullchain.cer; #证书路径
ssl_certificate_key /[用户名]/.acme.sh/xmgspace.me/example.com.key; #私钥路径
ssl_stapling on; #开启OCSP
ssl_stapling_verify on; #开启OCSP验证
ssl_trusted_certificate /[用户名]/.acme.sh/xmgspace.me/fullchain.cer; #验证证书路径

编辑完成保存之后重启Nginx。

这样,OCSP装订就成功启用啦!要验证是否启用了OCSP,可以在SSL Lab,或者在MySSL中进行测试。另外还有一位来着国外的读者向我推荐了websiteplanet上的一个工具,但是证书信息略微有些简陋,日常维护证书用一下还可以。操作中遇到什么问题,欢迎在评论区留言哦!

本文永久链接:https://blog.xmgspace.me/archives/lets-encrypt-ocsp.html
本文文章标题:Let's Encrypt证书:国内服务器无法申请?国外服务器访问缓慢?你需要OCSP装订
如无特殊说明,只要您标明转载自Xiaomage's Blog,您就可以自由转载本文。禁止CSDN/采集站采集转载。
授权协议:署名-非商业性使用-相同方式共享 4.0(CC BY-NC-SA 4.0)

评论

  1. 自镇流高压汞灯
    Windows Firefox
    2年前
    2021-5-16 16:53:41

    什么问题导致的蓝屏?

    • 博主
      自镇流高压汞灯
      Windows Edge
      2年前
      2021-5-16 22:26:43

      我电脑的一个USB插口有问题,只要插口上面插了鼠标或者键盘,过一会就蓝屏,那个时候还不知道

  2. shoe
    Windows Chrome
    2年前
    2021-4-14 13:17:51

    很管用。证书申请不再失败

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇