public ClientCertificatesFixture() { CertificateWriter.CertificateFilenamePrefix = "OrgAndSpaceMatch"; CertificateWriter.Write(ServerOrgId, ServerSpaceId); CertificateWriter.CertificateFilenamePrefix = "SpaceMatch"; CertificateWriter.Write(Guid.NewGuid(), ServerSpaceId); CertificateWriter.CertificateFilenamePrefix = "OrgMatch"; CertificateWriter.Write(ServerOrgId, Guid.NewGuid()); }
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); }
/// <summary> /// Adds PEM files representing application identity to application configuration. /// When running outside Pivotal Platform, will create certificates resembling those found on the platform. /// </summary> /// <param name="builder">Your <see cref="IConfigurationBuilder"/></param> /// <param name="orgId">(Optional) A GUID representing an organization, for use with <see cref="CloudFoundryDefaults.SameOrganizationAuthorizationPolicy"/> authorization policy</param> /// <param name="spaceId">(Optional) A GUID representing a space, for use with <see cref="CloudFoundryDefaults.SameSpaceAuthorizationPolicy"/> authorization policy</param> public static IConfigurationBuilder AddCloudFoundryContainerIdentity(this IConfigurationBuilder builder, string orgId = null, string spaceId = null) { if (!Platform.IsCloudFoundry) { var orgGuid = orgId != null ? new Guid(orgId) : Guid.NewGuid(); var spaceGuid = spaceId != null ? new Guid(spaceId) : Guid.NewGuid(); var task = new LocalCertificateWriter(); task.Write(orgGuid, spaceGuid); Environment.SetEnvironmentVariable("CF_INSTANCE_CERT", Path.Combine(LocalCertificateWriter.AppBasePath, "GeneratedCertificates", "SteeltoeInstanceCert.pem")); Environment.SetEnvironmentVariable("CF_INSTANCE_KEY", Path.Combine(LocalCertificateWriter.AppBasePath, "GeneratedCertificates", "SteeltoeInstanceKey.pem")); } var certFile = Environment.GetEnvironmentVariable("CF_INSTANCE_CERT"); var keyFile = Environment.GetEnvironmentVariable("CF_INSTANCE_KEY"); if (certFile == null || keyFile == null) { return(builder); } return(builder.AddPemFiles(certFile, keyFile)); }