Esempio n. 1
0
        public void AddPemFiles_ReadsFiles_CreatesCertificate()
        {
            var config = new ConfigurationBuilder()
                         .AddPemFiles("instance.crt", "instance.key")
                         .Build();

            Assert.NotNull(config["certificate"]);
            Assert.NotNull(config["privateKey"]);
            var pemConfig = new PemConfigureCertificateOptions(config);
            var opts      = new CertificateOptions();

            pemConfig.Configure(opts);
            Assert.NotNull(opts.Certificate);
            Assert.Equal(Microsoft.Extensions.Options.Options.DefaultName, opts.Name);
            Assert.True(opts.Certificate.HasPrivateKey);
        }
        public void CertificatesIncludeParams()
        {
            var orgId      = Guid.NewGuid();
            var spaceId    = Guid.NewGuid();
            var certWriter = new LocalCertificateWriter();

            certWriter.Write(orgId, spaceId);
            var rootCertificate  = new X509Certificate2(certWriter.RootCAPfxPath);
            var intermediateCert = new X509Certificate2(certWriter.IntermediatePfxPath);
            var clientCert       =
                new X509Certificate2(File.ReadAllBytes(Path.Combine(LocalCertificateWriter.AppBasePath, "GeneratedCertificates", "SteeltoeInstanceCert.pem")))
                .CopyWithPrivateKey(PemConfigureCertificateOptions.ReadRsaKeyFromString(File.ReadAllText(Path.Combine(LocalCertificateWriter.AppBasePath, "GeneratedCertificates", "SteeltoeInstanceKey.pem"))));

            Assert.NotNull(rootCertificate);
            Assert.NotNull(intermediateCert);
            Assert.NotNull(clientCert);
            Assert.Contains("OU=space:" + spaceId, clientCert.Subject);
            Assert.Contains("OU=organization:" + orgId, clientCert.Subject);
        }