0
私はpem形式の証明書を持っています。 2つのファイルが完全に、RSA PublicとRSA秘密鍵。 私はpowershellスクリプトでサーバーにhttps要求をするためにこれらを使用しなければなりません。powershellの認証にpem証明書と鍵を使用https要求
X509証明書証明書ストアを使用して証明書を追加しようとしました。しかし、クライアント鍵証明書(RSA秘密鍵)を追加する方法がわかりません。 私は証明書を使用してみましたが、私はこのエラーを取得:
Exception Message: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure c
hannelを。
クライアント証明書とキーの両方をpowershellでどのように要求できますか?
私が書いたPowerShellスクリプト:
$method = "GET"
# Create a dictionary object that allows header storage in Rest call
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("X-Qlik-Xrfkey",$xrfKey)
$headers.Add("X-Qlik-User", "***")
#Get a selection object for all inactive users
$path = "/qrs/app?xrfkey=$xrfKey"
$theCommand = $senseServerHostName + "/qrs" + $path
$ns = "System.Security.Cryptography.X509Certificates"
$store = New-Object "$ns.X509Store"("My","CurrentUser")
#$store = New-Object System.Security.Cryptography.X509Certificates.X509Store("My", "CurrentUser")
$store.Open("ReadOnly")
#$certs = $store.Certificates.Find("FindByExtension", $certExtension, $false)
#"$store.Certificates"
ForEach($cert in $store.Certificates)
{
$certToUse = $cert
}
"$certToUse"
$response = Invoke-RestMethod $theCommand -Headers $headers -Method $method -Certificate $certToUse
私は ノードコードNode.jsの使用要求作ることができたものの:
var https = require('https');
var fs = require('fs');
var options = {
rejectUnauthorized: false,
hostname: '****',
method: 'GET',
path: '/qrs/app?xrfkey=****',
headers: {
//'Accept': 'application/json',
'x-qlik-xrfkey' : '****',
'X-Qlik-User' : '****'
},
key: fs.readFileSync("C:\\client_key.pem"),
cert: fs.readFileSync("C:\\client.pem")
};
https.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
感謝を。
PEM全体を店舗にインポートしましたか? certmgr.mscは、関連付けられた秘密鍵を持つ証明書を表示しましたか?これらのファイルを主キーで証明書としてインポートするには、PKCS#12形式に変換する必要があると思います。 IIRC Windowsでは、SSLエンジンを実行しているときにキーをファイルとして保存することはできません。 – Vesper
はい、パブリック証明書と関連するプライベートキーファイルを1つのPKCS#12コンテナにマージし、Windows証明書ストアにインストールする必要があります。 – Crypt32
公開鍵を証明書ストアにインポートしたばかりです。パブリックとプライベートをPKCS12にマージし、証明書ストアにインストールしようとします。そして、サーバーにヒットしようとします。ありがとう。 – sand