Openssl 命令不 运行 在 crontab 中仅针对特定证书
Openssl command does not run in crontab only for a specific certificate
我在 Ubuntu 服务器 16 中有一个 SH 脚本,我 运行 得到证书的结束日期:
openssl pkcs12 -in cert.p12 -clcerts -nodes -passin file:passwordfile | openssl x509 -noout -enddate
这 运行 适用于多个证书,但只有一个不 运行。我检查了所有证书的文件权限,并且都具有相同的权限。文件中的密码也是正确的。如果脚本由 crontab 调用,它不会 return 日期。如果我在命令行中 运行 它按预期工作。
我创建了一个节点 JS 文件来执行相同的操作,它也适用于除相同证书之外的所有证书,并且它再次在命令行中运行。
该文件的密码包含重音字符。它适用于命令行,但不适用于 crontab 中的 运行ning。这可能是某种原因吗?
我正在使用:
OpenSSL 1.1.1e 2020 年 3 月 17 日
Ubuntu 16.04.6 LTS
并且根据 https://www.openssl.org/docs/man1.1.1/man7/passphrase-encoding.html 它接受 UTF8。
任何想法为什么这不 运行 仅适用于特定证书?谢谢。
更新:
我将 OpenSSL 升级到 1.1.1g,问题仍然存在。我用 Ubuntu 20.04 测试,没有出现问题。
是crontab作业的路径问题。刚刚添加:
PATH=/usr/local/bin:/usr/local/ssl/bin:/usr/bin:/bin:
在工作之前解决了问题。
我在 Ubuntu 服务器 16 中有一个 SH 脚本,我 运行 得到证书的结束日期:
openssl pkcs12 -in cert.p12 -clcerts -nodes -passin file:passwordfile | openssl x509 -noout -enddate
这 运行 适用于多个证书,但只有一个不 运行。我检查了所有证书的文件权限,并且都具有相同的权限。文件中的密码也是正确的。如果脚本由 crontab 调用,它不会 return 日期。如果我在命令行中 运行 它按预期工作。 我创建了一个节点 JS 文件来执行相同的操作,它也适用于除相同证书之外的所有证书,并且它再次在命令行中运行。
该文件的密码包含重音字符。它适用于命令行,但不适用于 crontab 中的 运行ning。这可能是某种原因吗?
我正在使用: OpenSSL 1.1.1e 2020 年 3 月 17 日 Ubuntu 16.04.6 LTS
并且根据 https://www.openssl.org/docs/man1.1.1/man7/passphrase-encoding.html 它接受 UTF8。 任何想法为什么这不 运行 仅适用于特定证书?谢谢。
更新: 我将 OpenSSL 升级到 1.1.1g,问题仍然存在。我用 Ubuntu 20.04 测试,没有出现问题。
是crontab作业的路径问题。刚刚添加: PATH=/usr/local/bin:/usr/local/ssl/bin:/usr/bin:/bin: 在工作之前解决了问题。