@@ -462,12 +462,13 @@ await id.LoadPrivateKeyExAsync(passwordProvider, configuration.ApplicationUri, m
462462 {
463463 if ( ! DisableCertificateAutoCreation )
464464 {
465- certificate = await CreateApplicationInstanceCertificateAsync (
466- configuration ,
467- id ,
468- lifeTimeInMonths ,
469- ct )
470- . ConfigureAwait ( false ) ;
465+ certificate = await CreateApplicationInstanceCertificateAsync (
466+ configuration ,
467+ id ,
468+ minimumKeySize ,
469+ lifeTimeInMonths ,
470+ ct )
471+ . ConfigureAwait ( false ) ;
471472 }
472473 else
473474 {
@@ -831,13 +832,15 @@ private async Task<bool> CheckDomainsInCertificateAsync(
831832 /// </summary>
832833 /// <param name="configuration">The configuration.</param>
833834 /// <param name="id">The certificate identifier.</param>
835+ /// <param name="minimumKeySize">Minimum RSA key size to use when creating the certificate.</param>
834836 /// <param name="lifeTimeInMonths">The lifetime in months.</param>
835837 /// <param name="ct">Cancellation token to cancel operation with</param>
836838 /// <returns>The new certificate</returns>
837839 /// <exception cref="ServiceResultException"></exception>
838840 private async Task < X509Certificate2 > CreateApplicationInstanceCertificateAsync (
839841 ApplicationConfiguration configuration ,
840842 CertificateIdentifier id ,
843+ ushort minimumKeySize ,
841844 ushort lifeTimeInMonths ,
842845 CancellationToken ct )
843846 {
@@ -874,10 +877,16 @@ await DeleteApplicationInstanceCertificateAsync(configuration, id, ct).Configure
874877 id . CertificateType == ObjectTypeIds . RsaMinApplicationCertificateType ||
875878 id . CertificateType == ObjectTypeIds . RsaSha256ApplicationCertificateType )
876879 {
877- id . Certificate = builder . SetRSAKeySize ( CertificateFactory . DefaultKeySize )
878- . CreateForRSA ( ) ;
880+ ushort keySize = minimumKeySize == 0
881+ ? CertificateFactory . DefaultKeySize
882+ : minimumKeySize ;
883+
884+ id . Certificate = builder . SetRSAKeySize ( keySize ) . CreateForRSA ( ) ;
879885
880- m_logger . LogInformation ( "Certificate {Certificate} created for RSA." , id . Certificate . AsLogSafeString ( ) ) ;
886+ m_logger . LogInformation (
887+ "Certificate {Certificate} created for RSA with key size {KeySize} bits." ,
888+ id . Certificate . AsLogSafeString ( ) ,
889+ keySize ) ;
881890 }
882891 else
883892 {
0 commit comments