宝塔面板6.9.3申请let’s encrypt证书出错 – No module named requests

全新安装的宝塔面板6.9.3用文件验证的方式取申请SSL证书的时候出错,信息如下:

{
    "msg": "签发失败,我们无法验证您的域名:<p>1、检查域名是否绑定到对应站点</p><p>2、检查域名是否正确解析到本服务器,或解析还未完全生效</p><p>3、如果您的站点设置了反向代理,或使用了CDN,请先将其关闭</p><p>4、如果您的站点设置了301重定向,请先将其关闭</p><p>5、如果以上检查都确认没有问题,请尝试更换DNS服务商</p>",
    "status": false,
    "result": [
        "",
        "Traceback (most recent call last):\n  File \"/www/server/panel/class/letsencrypt.py\", line 24, in <module>\n    import argparse, subprocess, json, os, sys, base64, binascii, time, hashlib, re, copy, textwrap, logging, requests\nImportError: No module named requests\n"
    ],

国外主机优惠抓包了这个错误,丢一张图看看:

明显是缺少了 requests 模块,在linux终端手动安装 requests 模块以后,运行正常。不知道是不是国外主机优惠自己遇到这个问题还是什么,这篇文章看看如何解决这个问题:

一:安装 requests 模块

我们用SSH连接服务器或者就用宝塔终端来安装 requests 模块:

pip install requests

看看安装的截图:

用命令[code]pip list [/code]显示是否安装,看图:

之后,我们用文件验证的方式取申请就顺利申请成功。

二:dns申请

我们可用dns申请的方式试试看,如果可以申请,则用dns申请,然后切回文件验证的方式申请,国外主机优惠发现又可以申请了,国外主机优惠在网上一通搜索,发现了可能有两个问题引起的:

  • 确实是没有安装requests
  • python环境的混乱,就是一台服务器上安装了很多个python的脚本,然后安装的requests只放置到了其中了一个版本的引用库中

究其原因,国外主机优惠认为还是宝塔面板python环境的混乱的引起的这个问题,用命令来查看:

ls /usr/bin/

丢一张图:

发现确实有多个python。

三:总结

有可能我们会遇到No module named requests的错误,多数原因是python环境的混乱引起的,不过,我们依然可以安装 requests 模块来解决这个问题。

或者我们用dns申请的方式试试看,最后可用acme来申请试试看。