首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用x509 12.x的x509错误

使用x509 12.x的x509错误
EN

Stack Overflow用户
提问于 2020-01-08 07:02:46
回答 1查看 1.4K关注 0票数 1

我正在尝试使用openssl运行下面的代码来读取证书。代码可以在Node.js 8.10的Lambda上工作。

代码语言:javascript
复制
const util = require('util');
const exec = util.promisify(require('child_process').exec);

var pemCert = "testCert.cer";

exports.handler = async (event) => {
    return execute('Get Public Key Issuer', 'openssl x509 -in ' + pemCert + ' -noout -issuer -nameopt multiline | grep organizationName')
    .then(result => {
        return (result);
    }).catch(error => {
        console.log (error);
    });
};

async function execute(purpose, command) {
    try {
        const {
            stdout,
            stderr
        } = await exec(command);
        console.log(purpose + " : " + command);
        console.log('Execute stdout:', stdout);
        return stdout;
    } catch (error) {
        console.log(purpose + " : " + command);
        console.log("Error:" + error);
        throw (purpose + " failed.");
    }
}

但是,当将Lambda与Node.js 12.x一起使用时,我会得到以下错误:

代码语言:javascript
复制
/bin/sh: openssl: command not found

在新的Node.js中,AWS似乎在运行时不支持openssl,在节点12的Lambda中,有什么替代方法可以用来执行openssl命令呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-08 09:15:17

引用AWS发送的电子邮件

“我们正在更新AWS Lambda和AWS Lambda@Edge执行环境,以包括Amazon的最新版本和软件包。

大多数功能将无缝地受益于此更新中的增强功能,而无需采取任何操作。然而,在少数情况下,包更新可能会带来兼容性问题。包含针对非常特定的底层操作系统包(特别是openssl、glibc或其他系统库)编译的库或应用程序代码的函数可能会受到影响。

从2019年5月14日开始,您可以使用新的执行环境测试您的函数。从2019年5月21日起,所有新功能或现有功能的更新都将使用新的执行环境。您现有的函数将在2019年6月11日自动迁移到使用新的执行环境。“

另一种选择是使用AWS层(https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)。

您可以在这里看到详细的步骤- NPM package pem doesn't seem to work in AWS lambda NodeJS 10.x (results in OpenSSL error)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59640899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档