我正在尝试使用双向 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.