簡體   English   中英

如何使用 RestSharp c# 驗證 SSL 證書

[英]How to authenticate SSL certificates using RestSharp c#

證書的位置

從父級繼承身份驗證

postman中的測試

我想使用 Restsharp 發送這個 GET 請求 -

這就是我要發送的 -

請求- 獲取,

URL - https://18.0.1.230:8080/api/report/test

Header - 鍵 = 內容類型,值 = 應用程序/x-www-form-urlencoded

在 Postman 上,我沒有發送關於授權類型的任何內容(其設置為“從父級繼承身份驗證”)檢查“從父級繼承身份驗證”圖像

我在 Postman 中設置了客戶端證書,所以我設置了它們的位置,postman 在發送此請求時使用它。 檢查“證書位置”圖像

我想知道如何使用 restSharp c# 代碼將這些證書添加到 GET 請求中,以便通過身份驗證並獲得 200 響應?

您需要做的是首先導入證書:

public static async Task<X509Certificate2> LoadPemCertificate(string certificatePath, string privateKeyPath)
        {
            using var publicKey = new X509Certificate2(certificatePath);

            var privateKeyText = await File.ReadAllTextAsync(privateKeyPath);
            var privateKeyBlocks = privateKeyText.Split("-", StringSplitOptions.RemoveEmptyEntries);
            var privateKeyBytes = Convert.FromBase64String(privateKeyBlocks[1]);
            using var rsa = RSA.Create();

            if (privateKeyBlocks[0] == "BEGIN PRIVATE KEY")
            {
                rsa.ImportPkcs8PrivateKey(privateKeyBytes, out _);
            }
            else if (privateKeyBlocks[0] == "BEGIN RSA PRIVATE KEY")
            {
                rsa.ImportRSAPrivateKey(privateKeyBytes, out _);
            }

            var keyPair = publicKey.CopyWithPrivateKey(rsa);
            return new X509Certificate2(keyPair.Export(X509ContentType.Pfx));
        }

一旦你在 memory 中加載了證書,你所要做的就是將證書附加到 restsharp 客戶端:

 var client = new RestClient("https://18.0.1.230:8080/api/report/test"); 
 client.ClientCertificates.Add(new X509Certificate(certificate));
...
 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM