В настоящее время я расширяю часть ведения журнала своего приложения веб-API ASP.NET, но мне не удается определить, какая схема шифрования используется. Поскольку это ведение журнала осуществляется через DelegatingHandler, у меня есть доступ только к HttpRequestMessage и HttpResponseMessage, предоставленным мне через цепочку промежуточного программного обеспечения.
Как определить тип шифрования https (SSL 3.0, TLS 1.0, TLS 1.3 и т. д.), Используемый в ASP.NET Web API DelegatingHandler?





Я не уверен, спрашиваете ли вы, является ли запрос https или просто http. Если это то, что вы ищете, вам просто нужен httpRequestMessage.RequestUri.Scheme.
Однако похоже, что вы ищете дополнительную информацию о самом сертификате. Информация о сертификате SSL на самом деле не является свойством отдельного запроса и, насколько мне известно, недоступна из HttpRequestMessage или HttpResponseMessage. Это скорее свойство приложения и конфигурации машины.
Если вы хотите получить информацию о сертификате SSL, вы можете сделать что-то вроде этого:
var store = new X509Store(StoreLocation.LocalMachine);
var certificateCollection = store.Certificates.Find(X509FindType.FindByThumbprint, "thumbprint", true);
var certificate = certificateCollection[0];
var version = certificate.Version;
var signatureAlgorithm = certificate.SignatureAlgorithm;
Очевидно, что это всего лишь один из способов сделать это, и есть дополнительная обработка ошибок, которую вы хотели бы сделать. Общая идея заключается в том, что у вас, вероятно, есть доступ к отпечатку сертификата, используемому приложением, через app.config. Если вы используете это, вы можете найти информацию о сертификате из X509Store, как я сделал выше. Тогда у вас будет доступ ко всем видам недвижимости.
Надеюсь, это поможет!
Я смотрю, зашифрован ли запрос с помощью SSL 2.0, TLS 1.0, TLS1.3 и т. д.