crontab 在没有证书的情况下使用 wget

Arn*_*lis 0 ubuntu ssl

我尝试在添加 SSL 证书后运行我的 crontab,但遇到了问题:

 Unable to locally verify the issuer's authority.
To connect to www.***.com insecurely, use `--no-check-certificate'.
Run Code Online (Sandbox Code Playgroud)

我看到它说可以使用--no-check-certificate',但我不知道如何使用它。有人能给我解释一下吗?

Bar*_*ard 7

您几乎没有详细说明您的问题是什么、为什么会出现错误,或者您尝试采取什么措施来解决此问题。

我猜你正在 cron 中运行 wget 来获取本地地址?我想您最近也更改了服务器来配置 SSL,现在却收到此错误?

所以选项是:

  1. 使用 wget 的 --no-check-certificate 选项。
  2. 修复错误。
  3. 允许此 wget 的 http 访问。

第一个是最简单的。如果你这样调用:

wget https://www.example.com
Run Code Online (Sandbox Code Playgroud)

然后将其更改为:

wget --no-check-certificate https://www.example.com
Run Code Online (Sandbox Code Playgroud)

这正是阿尔文建议的链接中的内容,所以不确定这有什么问题?wget 一直支持该选项,因此不确定为什么您认为不支持。

第二个选项取决于为什么 wget 无法验证发行者的权限。这可能有多种原因:

  1. 您使用的服务器名称不在证书上(例如 localhost 或 127.0.0.1 或本地服务器名称)。如果是这样,您需要忽略上面的错误或将 wget 命令更改为证书上识别的 ServerName。
  2. 您的服务器配置不正确。如果是这样,请参阅此处类似的问题。
  3. wget 使用的信任存储缺少必要的证书。

最后我们来到第三种选择。如果您从 cron 向同一台服务器运行 wget(例如检查您的网络服务器是否已启动),那么强制通过 https 进行该操作可能有点过分了。您最好还是只允许该服务器使用 http。如何执行此操作取决于 Web 服务器以及您如何为其配置 https(例如,如果您将所有 http 流量重定向到 https,则可以为来自 127.0.0.1 的请求设置例外)。