1

我正在尝试使用双向 SSL 身份验证的 SSL 安全 API。已经使用 keytool -genkey 命令创建了自签名证书,并创建了与 API 提供者共享的 3 个密钥文件(selfsigned.crt、selfsigned.p12、selfsigned.jks)。API 提供商提供的一份 UATSKY.crt 证书已添加到我在 mac 上的信任库中。现在,当我尝试从邮递员访问此 api 时,它会弹出选择证书,然后它会成功调用 api 并获得积极的响应。我如何在 Node JS 应用程序中实现相同的功能。

我尝试使用 https.createserver 并将 ptivate 密钥和证书传递给 craeteserver

var app = express();

app.use(bodyParser.urlencoded({

extended: false

}));

app.use(bodyParser.json());

app.use(bodyParser.json({ limit: '50mb' }));

app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));

app.use(cors());


var privateKey =             
fs.readFileSync('./private/selfsignedpayeazzy.p12');
var certificate = fs.readFileSync('./private/selfsignedpayeazzy.crt');
var credentials = { 
    key: privateKey,
    cert: certificate
 };

https.createServer(credentials, app).listen(port);

这给了我以下错误

_tls_common.js:112
  c.context.setCert(cert);
            ^

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Object.createSecureContext (_tls_common.js:112:17)
at Server.setSecureContext (_tls_wrap.js:960:27)
at Server (_tls_wrap.js:850:8)
at new Server (https.js:61:14)
at Object.createServer (https.js:83:10)

not able to add this certificates to the application.
4

0 回答 0