Я хочу иметь возможность генерировать сертификаты CA Root и сервера с использованием .NET. Конечная цель состоит в том, чтобы использовать их для обеспечения межсервисных GRPC Comms, но сейчас все работает локально. OpenSSL, все работает так, как и ожидалось, включая локальную службу GRPC .NET. Я думаю, что это связано с тем, что по какой -то причине код .NET не может получить доступ к частному ключу, хотя IIS может.
В следующем фрагменте кода, пытаясь получить доступ к PrivateKey для .NET, сгенерированного сертификационными бросками. />
public void ReadDifferentCerts()
{
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindBySubjectName, "MyMachine", false);
var dotNetCert = certs.Find(X509FindType.FindByIssuerName, "DotNetRootCA", false).First();
var openSslCert = certs.Find(X509FindType.FindByIssuerName, "OpenSSLRootCA", false).First();
}
Многие решения по этому вопросу вращаются вокруг разрешений к ключу, и я могу получить доступ к ключу, если я импортирую файл PFX в хранилище текущего пользователя, Но мои вопросы:
, как отличается версия OpenSSL? Какой флаг мне нужно установить в версии .NET? Насколько я могу сделать, все параметры одинаковы, они выглядят почти идентично в магазине. The private key 100% exists in the pfx file because IIS can use it and the same file works in the Current User store.
C# code generation
Я хочу иметь возможность генерировать сертификаты CA Root и сервера с использованием .NET. Конечная цель состоит в том, чтобы использовать их для обеспечения межсервисных GRPC Comms, но сейчас все работает локально. OpenSSL, все работает так, как и ожидалось, включая локальную службу GRPC .NET. Я думаю, что это связано с тем, что по какой -то причине код .NET не может получить доступ к частному ключу, хотя IIS может. В следующем фрагменте кода, пытаясь получить доступ к PrivateKey для .NET, сгенерированного сертификационными бросками. />[code]public void ReadDifferentCerts() { var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindBySubjectName, "MyMachine", false);
var dotNetCert = certs.Find(X509FindType.FindByIssuerName, "DotNetRootCA", false).First(); var openSslCert = certs.Find(X509FindType.FindByIssuerName, "OpenSSLRootCA", false).First(); } [/code] Многие решения по этому вопросу вращаются вокруг разрешений к ключу, и я могу получить доступ к ключу, если я импортирую файл PFX в хранилище текущего пользователя, Но мои вопросы: , как отличается версия OpenSSL? Какой флаг мне нужно установить в версии .NET? Насколько я могу сделать, все параметры одинаковы, они выглядят почти идентично в магазине. The private key 100% exists in the pfx file because IIS can use it and the same file works in the Current User store. C# code generation
[code]public void GenerateAndWriteToDisk() { var rootCA = BuildRootCertificate();
public static X509Certificate2 BuildRootCertificate() { using (var rsa = RSA.Create(3072)) { var request = new CertificateRequest("C=GB,O=MyCompany,CN=DotNetRootCA", rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); var subjectIdentifier = new X509SubjectKeyIdentifierExtension(new PublicKey(rsa), false); request.CertificateExtensions.Add(subjectIdentifier); request.CertificateExtensions.Add(X509AuthorityKeyIdentifierExtension.CreateFromSubjectKeyIdentifier(subjectIdentifier)); request.CertificateExtensions.Add(new X509BasicConstraintsExtension(true, false, 0, true));
var cert = request.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddDays(1825)); return cert; } }
public static X509Certificate2 BuildServerCertificate(X509Certificate2 rootCaCertificate) { using (var rsa = RSA.Create(3072)) { var request = new CertificateRequest("O=MyCompany,OU=DevSecOps,CN=MyMachine", rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
var keyUsages = new X509KeyUsageExtension( X509KeyUsageFlags.DataEncipherment | X509KeyUsageFlags.KeyEncipherment | X509KeyUsageFlags.DigitalSignature, false); request.CertificateExtensions.Add(keyUsages);
var sanBuilder = new SubjectAlternativeNameBuilder(); sanBuilder.AddDnsName("MyMachine"); sanBuilder.AddDnsName("localhost"); sanBuilder.AddIpAddress(IPAddress.Loopback); sanBuilder.AddIpAddress(IPAddress.IPv6Loopback);
Я хочу иметь возможность генерировать сертификаты CA Root и сервера с использованием .NET. Конечная цель состоит в том, чтобы использовать их для обеспечения межсервисных GRPC Comms, но сейчас все работает локально. OpenSSL, все работает так, как и...
Я попробовал использовать пул соединений HikariCP для подключения Snowflake с помощью JDBC. Я использую XML-файл конфигурации Spring Boot для создания bean-компонента. У меня есть закрытый ключ для аутентификации. Итак, я попробовал следующее:
Файл...
What is the difference between app signing certificate and upload certificate? I am having trouble with integrating Google Play Games with my app (I posted about this as another question) and I noticed that the one that is used for client Id that is...
Я пытаюсь использовать SSL с комаром. # This script will generate a CA's private key and self-signed certificate,
# a server's private key and CSR, and finally, a server's certificate signed by the CA.
# You can then use these certificates for...
I am currently developing a .Net MAUI application where I am making an HTTP call using a specific function. The peculiar issue I am facing is that the function works perfectly fine on Windows, but when I attempt to execute it on Android, it throws...