CertificateRequest.Create 方法

定义

重载

Create(X509Certificate2, DateTimeOffset, DateTimeOffset, Byte[])

通过将指定证书用作颁发者来创建证书,该证书使用建立的使用者、密钥和可选扩展。

Create(X509Certificate2, DateTimeOffset, DateTimeOffset, ReadOnlySpan<Byte>)

通过将提供的证书用作颁发者来创建证书,该证书使用建立的使用者、密钥和可选扩展。

Create(X500DistinguishedName, X509SignatureGenerator, DateTimeOffset, DateTimeOffset, Byte[])

对当前证书请求签名,以创建链签名证书或自签名证书。

Create(X500DistinguishedName, X509SignatureGenerator, DateTimeOffset, DateTimeOffset, ReadOnlySpan<Byte>)

对当前证书请求签名,以创建链签名证书或自签名证书。

Create(X509Certificate2, DateTimeOffset, DateTimeOffset, Byte[])

通过将指定证书用作颁发者来创建证书,该证书使用建立的使用者、密钥和可选扩展。

public:
 System::Security::Cryptography::X509Certificates::X509Certificate2 ^ Create(System::Security::Cryptography::X509Certificates::X509Certificate2 ^ issuerCertificate, DateTimeOffset notBefore, DateTimeOffset notAfter, cli::array <System::Byte> ^ serialNumber);
public System.Security.Cryptography.X509Certificates.X509Certificate2 Create (System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, DateTimeOffset notBefore, DateTimeOffset notAfter, byte[] serialNumber);
member this.Create : System.Security.Cryptography.X509Certificates.X509Certificate2 * DateTimeOffset * DateTimeOffset * byte[] -> System.Security.Cryptography.X509Certificates.X509Certificate2
Public Function Create (issuerCertificate As X509Certificate2, notBefore As DateTimeOffset, notAfter As DateTimeOffset, serialNumber As Byte()) As X509Certificate2

参数

issuerCertificate
X509Certificate2

一个表示证书颁发机构 (CA) 的 X509Certificate2 实例。

notBefore
DateTimeOffset

此证书被视为有效的最初日期和时间。 通常为 UtcNow(可能有几秒钟的误差)。

notAfter
DateTimeOffset

此证书不再被视为有效的日期和时间。

serialNumber
Byte[]

用于新证书的序列号。 此值应该是每个颁发者所特有的。 该值将以大端字节顺序被解释为任意大小的无符号整数。 RFC 3280 建议将其限制为 20 个字节或更少。

返回

X509Certificate2

一个具有指定值的 X509Certificate2 对象。 返回的对象不会证明 HasPrivateKey

例外

issuerCertificatenull

issuerCertificate 不包含私钥。

  • 或 -

无法确定由 issuerCertificate 表示的签名密钥的类型。

  • 或 -

notAfter 表示早于 notBefore 的某个日期和时间。

  • 或 -

serialNumber 的长度为零或 null

  • 或 -

issuerCertificate 具有与请求的证书不同的密钥算法。

  • 或 -

issuerCertificateHasPrivateKey 值为 false

issuerCertificate 是 RSA 证书,且当前对象是通过不接受 padding 参数的构造函数创建的。

注解

此方法不支持将 MD5 或 SHA-1 用作证书签名的哈希算法。 如果需要基于 MD5 或 SHA-1 的证书签名,则需要实现自定义 X509SignatureGenerator 和调用 Create(X500DistinguishedName, X509SignatureGenerator, DateTimeOffset, DateTimeOffset, Byte[])

适用于

Create(X509Certificate2, DateTimeOffset, DateTimeOffset, ReadOnlySpan<Byte>)

通过将提供的证书用作颁发者来创建证书,该证书使用建立的使用者、密钥和可选扩展。

public:
 System::Security::Cryptography::X509Certificates::X509Certificate2 ^ Create(System::Security::Cryptography::X509Certificates::X509Certificate2 ^ issuerCertificate, DateTimeOffset notBefore, DateTimeOffset notAfter, ReadOnlySpan<System::Byte> serialNumber);
public System.Security.Cryptography.X509Certificates.X509Certificate2 Create (System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, DateTimeOffset notBefore, DateTimeOffset notAfter, ReadOnlySpan<byte> serialNumber);
member this.Create : System.Security.Cryptography.X509Certificates.X509Certificate2 * DateTimeOffset * DateTimeOffset * ReadOnlySpan<byte> -> System.Security.Cryptography.X509Certificates.X509Certificate2
Public Function Create (issuerCertificate As X509Certificate2, notBefore As DateTimeOffset, notAfter As DateTimeOffset, serialNumber As ReadOnlySpan(Of Byte)) As X509Certificate2

参数

issuerCertificate
X509Certificate2

一个表示证书颁发机构 (CA) 的 X509Certificate2 实例。

notBefore
DateTimeOffset

此证书被视为有效的最初日期和时间。 通常为 UtcNow(可能有几秒钟的误差)。

notAfter
DateTimeOffset

此证书不再被视为有效的日期和时间。

serialNumber
ReadOnlySpan<Byte>

用于新证书的序列号。 此值应该是每个颁发者所特有的。 该值将以大端字节顺序被解释为无符号(大)整数。

返回

X509Certificate2

具有指定值的证书。 返回的对象不会证明 HasPrivateKey

例外

issuerCertificatenull

issuerCertificateHasPrivateKey 值为 false

无法确定由 issuerCertificate 表示的签名密钥的类型。

notAfter 表示 notBefore 以前的某个日期和时间。

serialNumber 的长度为 0。

issuerCertificate 具有与请求的证书不同的密钥算法。

issuerCertificate 是 RSA 证书,并且此对象是通过不接受 RSASignaturePadding 值的构造函数创建的。

适用于

Create(X500DistinguishedName, X509SignatureGenerator, DateTimeOffset, DateTimeOffset, Byte[])

对当前证书请求签名,以创建链签名证书或自签名证书。

public:
 System::Security::Cryptography::X509Certificates::X509Certificate2 ^ Create(System::Security::Cryptography::X509Certificates::X500DistinguishedName ^ issuerName, System::Security::Cryptography::X509Certificates::X509SignatureGenerator ^ generator, DateTimeOffset notBefore, DateTimeOffset notAfter, cli::array <System::Byte> ^ serialNumber);
public System.Security.Cryptography.X509Certificates.X509Certificate2 Create (System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Security.Cryptography.X509Certificates.X509SignatureGenerator generator, DateTimeOffset notBefore, DateTimeOffset notAfter, byte[] serialNumber);
member this.Create : System.Security.Cryptography.X509Certificates.X500DistinguishedName * System.Security.Cryptography.X509Certificates.X509SignatureGenerator * DateTimeOffset * DateTimeOffset * byte[] -> System.Security.Cryptography.X509Certificates.X509Certificate2
Public Function Create (issuerName As X500DistinguishedName, generator As X509SignatureGenerator, notBefore As DateTimeOffset, notAfter As DateTimeOffset, serialNumber As Byte()) As X509Certificate2

参数

issuerName
X500DistinguishedName

颁发者的 X500DistinguishedName

generator
X509SignatureGenerator

一个表示证书颁发机构的 X509SignatureGenerator 对象。

notBefore
DateTimeOffset

此证书被视为有效的最初日期和时间。 通常为 UtcNow(可能有几秒钟的误差)。

notAfter
DateTimeOffset

此证书不再被视为有效的日期和时间。

serialNumber
Byte[]

用于新证书的序列号。 此值应该是每个颁发者所特有的。 该值将以大端字节顺序被解释为任意大小的无符号整数。 RFC 3280 建议将其限制为 20 个字节或更少。

返回

X509Certificate2

一个具有指定值的 X509Certificate2 对象。 返回的对象不会证明 HasPrivateKey

例外

issuerCertificatenull

  • 或 -

generatornull

notAfter 表示早于 notBefore 的某个日期和时间。

  • 或 -

serialNumber 的长度为零或 null

签名时出现错误。

适用于

Create(X500DistinguishedName, X509SignatureGenerator, DateTimeOffset, DateTimeOffset, ReadOnlySpan<Byte>)

对当前证书请求签名,以创建链签名证书或自签名证书。

public:
 System::Security::Cryptography::X509Certificates::X509Certificate2 ^ Create(System::Security::Cryptography::X509Certificates::X500DistinguishedName ^ issuerName, System::Security::Cryptography::X509Certificates::X509SignatureGenerator ^ generator, DateTimeOffset notBefore, DateTimeOffset notAfter, ReadOnlySpan<System::Byte> serialNumber);
public System.Security.Cryptography.X509Certificates.X509Certificate2 Create (System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Security.Cryptography.X509Certificates.X509SignatureGenerator generator, DateTimeOffset notBefore, DateTimeOffset notAfter, ReadOnlySpan<byte> serialNumber);
member this.Create : System.Security.Cryptography.X509Certificates.X500DistinguishedName * System.Security.Cryptography.X509Certificates.X509SignatureGenerator * DateTimeOffset * DateTimeOffset * ReadOnlySpan<byte> -> System.Security.Cryptography.X509Certificates.X509Certificate2
Public Function Create (issuerName As X500DistinguishedName, generator As X509SignatureGenerator, notBefore As DateTimeOffset, notAfter As DateTimeOffset, serialNumber As ReadOnlySpan(Of Byte)) As X509Certificate2

参数

issuerName
X500DistinguishedName

颁发者的可分辨名称。

generator
X509SignatureGenerator

颁发证书颁发机构。

notBefore
DateTimeOffset

此证书被视为有效的最初日期和时间。 通常为 UtcNow(可能有几秒钟的误差)。

notAfter
DateTimeOffset

此证书不再被视为有效的日期和时间。

serialNumber
ReadOnlySpan<Byte>

用于新证书的序列号。 此值应该是每个颁发者所特有的。 该值将以大端字节顺序被解释为无符号(大)整数。

返回

X509Certificate2

具有指定值的证书。 返回的对象不会证明 HasPrivateKey

例外

issuerNamegeneratornull

notAfter 表示 notBefore 以前的某个日期和时间。

  • 或 -

serialNumber 的长度为 0。

签名操作时出错。

适用于