クライアント証明書認証を使用していくつかの xml を https サイトに投稿する必要がありますが、正常に実行できませんでした。
以下のようなプロバイダーから提供された2つの.pemファイルがあります:(すべてのデータを送信できないため、カットされています)
証明書.pem:
-----BEGIN CERTIFICATE----- MIIC0DCCAjmgAwIBAgIKAd8CIHEBAwIEpjANBgkqhkiG9w0BAQUFADCBmTELMAkG
---エンド証明書-----
key.pem:
-----RSA 秘密鍵の開始----- MIICWwBAAKBgQC+HN6jHJD1zoGLHYj1ycvg1yajll5zb3gExoWv7k+RbXLGuDEX
-----END RSA 秘密鍵-----
私がやろうとしていたことは
private static string HttpRequest(string url, string data)
{
HttpWebRequest rq = (HttpWebRequest)WebRequest.Create(url);
//string privateKey = File.ReadAllText("c:\\key.pem");
//privateKey = privateKey.Replace("-----BEGIN RSA PRIVATE KEY-----", "");
//privateKey = privateKey.Replace("-----END RSA PRIVATE KEY-----", "");
//privateKey = privateKey.Replace("\n", "");
//Byte[] byteArr = Convert.FromBase64String(privateKey);
//How do I use below .pem files here to authentica
rq.ClientCertificates.Add(clientcert);
rq.Method = "POST";
rq.Proxy = null;
rq.ContentType = "application/www-form-urlencoded";
string dataToSend = data;
byte[] byteArray = Encoding.UTF8.GetBytes(dataToSend);
rq.ContentLength = byteArray.Length;
string responseFromServer = null;
try
{
Stream dataStream = rq.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse _WebResponse = rq.GetResponse();
dataStream = _WebResponse.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
responseFromServer = reader.ReadToEnd();
}
catch (Exception ex)
{
}
return responseFromServer;
}