[성현모] KMS.GUI 인증서 정보 표시 추가

This commit is contained in:
SHM
2026-03-04 15:04:40 +09:00
parent 20958808d6
commit b022c55a5a
3 changed files with 662 additions and 633 deletions

View File

@ -59,7 +59,8 @@ namespace WebApi.Project.ProxyKMS.Services
{
RESPONSE response = null;
Guid guid = Guid.NewGuid();
using (HttpClient httpClient = new HttpClient(GetClientHandler()))
var handler = GetClientHandler();
using (HttpClient httpClient = new HttpClient(handler))
{
try
{
@ -68,6 +69,18 @@ namespace WebApi.Project.ProxyKMS.Services
httpClient.BaseAddress = new Uri(url ?? "");
LogXnet.WriteLine($"[POST] Request({guid})::{url}{Environment.NewLine}{request?.ToJson()}", LogXLabel.HTTP);
DateTime requestTime = DateTime.Now;
// 추가된 인증서 정보 출력
foreach (X509Certificate2 c in handler.ClientCertificates)
{
LogXnet.WriteLine("Subject: " + c.Subject);
LogXnet.WriteLine("Issuer: " + c.Issuer);
LogXnet.WriteLine("Thumbprint: " + c.Thumbprint);
LogXnet.WriteLine("NotBefore: " + c.NotBefore);
LogXnet.WriteLine("NotAfter: " + c.NotAfter);
LogXnet.WriteLine("----------------------------");
}
response = await (await httpClient.PostAsJsonAsync(url, request)).Content.ReadFromJsonAsync<RESPONSE>();
LogXnet.WriteLine($"[POST] Rseponse({guid}) ({(DateTime.Now - requestTime).TotalSeconds} sec)::{url}{Environment.NewLine}{response?.ToJson()}", LogXLabel.HTTP);
}
@ -86,7 +99,8 @@ namespace WebApi.Project.ProxyKMS.Services
RESPONSE? response = default(RESPONSE);
Guid guid = Guid.NewGuid();
using (HttpClient httpClient = new HttpClient(GetClientHandler()))
var handler = GetClientHandler();
using (HttpClient httpClient = new HttpClient(handler))
{
try
{
@ -98,6 +112,18 @@ namespace WebApi.Project.ProxyKMS.Services
DateTime requestTime = DateTime.Now;
var res = await httpClient.PutAsJsonAsync(url, request);
// 추가된 인증서 정보 출력
foreach (X509Certificate2 c in handler.ClientCertificates)
{
LogXnet.WriteLine("Subject: " + c.Subject);
LogXnet.WriteLine("Issuer: " + c.Issuer);
LogXnet.WriteLine("Thumbprint: " + c.Thumbprint);
LogXnet.WriteLine("NotBefore: " + c.NotBefore);
LogXnet.WriteLine("NotAfter: " + c.NotAfter);
LogXnet.WriteLine("----------------------------");
}
response = await res.Content.ReadFromJsonAsync<RESPONSE>();
LogXnet.WriteLine($"[PUT] Rseponse({guid}) ({(DateTime.Now - requestTime).TotalSeconds} sec)::{url}{Environment.NewLine}{response?.ToJson()}", LogXLabel.HTTP);
@ -119,20 +145,20 @@ namespace WebApi.Project.ProxyKMS.Services
//인증서가 경로에 있으면
if (File.Exists(KmsApi.CertPemPath) == true && File.Exists(KmsApi.CertKeyPath) == true)
{
Console.WriteLine($"Cert.Pem Path:{KmsApi.CertPemPath}", LogXLabel.Debug);
Console.WriteLine($"Cert.Key Path:{KmsApi.CertKeyPath}", LogXLabel.Debug);
LogXnet.WriteLine($"Cert.Pem Path:{KmsApi.CertPemPath}", LogXLabel.Debug);
LogXnet.WriteLine($"Cert.Key Path:{KmsApi.CertKeyPath}", LogXLabel.Debug);
var cert = X509Certificate2.CreateFromPemFile(KmsApi.CertPemPath, KmsApi.CertKeyPath);
cert = new X509Certificate2(cert.Export(X509ContentType.Pkcs12));
clientHandler.ClientCertificates.Add(cert);
}
else
{
Console.WriteLine($"File not exist. Cert.Pem Path:{KmsApi.CertPemPath}", LogXLabel.Warning);
Console.WriteLine($"File not exist. Cert.Key Path:{KmsApi.CertKeyPath}", LogXLabel.Warning);
LogXnet.WriteLine($"File not exist. Cert.Pem Path:{KmsApi.CertPemPath}", LogXLabel.Warning);
LogXnet.WriteLine($"File not exist. Cert.Key Path:{KmsApi.CertKeyPath}", LogXLabel.Warning);
}
//ssl 인증서 무시
Console.WriteLine($"CertificateVerify:{KmsApi.CertificateVerify}", LogXLabel.Debug);
LogXnet.WriteLine($"CertificateVerify:{KmsApi.CertificateVerify}", LogXLabel.Debug);
if (KmsApi.CertificateVerify == false)
{
clientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, sslPolicyErrors) =>