gpt4 book ai didi

java - 如何在java中进行相互SSL身份验证

转载 作者:行者123 更新时间:2023-12-04 22:36:16 25 4
gpt4 key购买 nike

我想使用 java 代码进行双向 SSL 身份验证,但没有成功我有 key.pemcert.pem文件进行身份验证我已经用 Curl 试过了
curl -X POST -d '{ "Channel": "....}' -H "Content-Type: application/json" -H "Auth1: ***" -H "Auth2: ***" -k https://******/webservices/JSON/Default.aspx --cert "cert.pem" --key "Key.pem"
它工作正常,然后我尝试创建 java 程序引用 Send https request in java using .pem file
但服务器返回“CERT_MISSING”。我也试过这个https://www.naschenweng.info/2018/02/01/java-mutual-ssl-authentication-2-way-ssl-authentication/此代码创建 p12、crt 和 jks 文件,如上面的链接所示,但仍然出现相同的错误“CERT_MISSING”。
这是工作的 NodeJS 示例:

var https = require("https");
var fs = require("fs");

var jsonData = {
"Channel": ....
}

var options = {
hostname: "****",
port: 443,
path: '/webservices/JSON/Default.aspx',
method: 'POST',
timeout: this.TimeOut,
headers: {'Content-Type':'application/json',"Auth1": "****","Auth2": "*****"},
json: true,
key: fs.readFileSync('Key.pem'),
cert: fs.readFileSync('cert.pem')
}

var req = https.request(options, function(res) {
res.on('data', function(data) {
var response = JSON.parse(data)
console.log(response)

req.end();
});
});
req.on('error', function(e) {
console.log("ERROR:");

})


req.write(JSON.stringify(jsonData));
req.end();

请帮助我。

最佳答案

我认为您需要“internediate-cert”文件将所有证书连接到一个 PEM 文件中,例如 cat "internediate-cert.pem" "codika_cert.pem" "Key.pem" > full-chain.keycert.pem然后使用别名和密码生成 PKCS12(.p12) keystore ,如 pkcs12 -export -in "full-chain.keycert.pem" -out full-chain.keycert.p12 -name alias -noiter -nomaciter然后使用 full-chain.keycert.p12作为带密码的 KeyStore。它应该工作。

关于java - 如何在java中进行相互SSL身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60465308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com