After you upgrade Active Directory Rights Management Services (AD RMS) from Cryptographic Mode 1 to Cryptographic Mode 2, AD RMS stops issuing Rights Account Certificates (RACs) to users. Additionally, when a user requests an RAC, a log entry that resembles the following is generated if you enable the debug log on the AD RMS server:
This issue occurs in Windows Server 2012 R2, Windows Server 2012, or Windows Server 2008 R2 Service Pack 1 (SP1) with update 2627272.
+[Tier1Diagnostic] http://your.adrms.cluster/_wmcs/certification/Certification.asmx
CallStack:Microsoft.DigitalRightsManagement.Certification.BaseCertificationWebService.Certify
System.InvalidCastException
Message: Unable to cast object of type 'System.DBNull' to type 'System.String'.
StackTrace: at Microsoft.DigitalRightsManagement.Certification.CertificationGen._InitializeUserKeys(SqlCommand userDataCmd)
at Microsoft.DigitalRightsManagement.Certification.CertificationGen._UpdateUser(Int32 userDatabaseId, String userName, Identification identification, Boolean persistent, SqlCommand userDataCmd, RsaKeyBlob& userKeys, PersonaCertificate& certificate)
at Microsoft.DigitalRightsManagement.Certification.CertificationGen._GetUserKeysAndCertificate(String userName, Identification identification, Byte[] machinePublicKeyHash, Boolean persistent, RsaKeyBlob& userKeys, PersonaCertificate& certificate)
at Microsoft.DigitalRightsManagement.Certification.CertificationGen.Certify(String userName, Identification identification, String machineCertificate, Boolean persistent)
at Microsoft.DigitalRightsManagement.Certification.Pipeline.Certify(CAType caType, CertifyParams[] requestParameters, HttpRequest request, IIdentity userIdentity)
at Microsoft.DigitalRightsManagement.Certification.BaseCertificationWebService.PipelineCertify(CAType caType, String userName, String[] machineCertificateChain, Boolean persistent)
at Microsoft.DigitalRightsManagement.Certification.BaseCertificationWebService.Certify(CAType caType, CertifyParams requestParameters)
CallStack:Microsoft.DigitalRightsManagement.Certification.BaseCertificationWebService.Certify
System.InvalidCastException
Message: Unable to cast object of type 'System.DBNull' to type 'System.String'.
StackTrace: at Microsoft.DigitalRightsManagement.Certification.CertificationGen._InitializeUserKeys(SqlCommand userDataCmd)
at Microsoft.DigitalRightsManagement.Certification.CertificationGen._UpdateUser(Int32 userDatabaseId, String userName, Identification identification, Boolean persistent, SqlCommand userDataCmd, RsaKeyBlob& userKeys, PersonaCertificate& certificate)
at Microsoft.DigitalRightsManagement.Certification.CertificationGen._GetUserKeysAndCertificate(String userName, Identification identification, Byte[] machinePublicKeyHash, Boolean persistent, RsaKeyBlob& userKeys, PersonaCertificate& certificate)
at Microsoft.DigitalRightsManagement.Certification.CertificationGen.Certify(String userName, Identification identification, String machineCertificate, Boolean persistent)
at Microsoft.DigitalRightsManagement.Certification.Pipeline.Certify(CAType caType, CertifyParams[] requestParameters, HttpRequest request, IIdentity userIdentity)
at Microsoft.DigitalRightsManagement.Certification.BaseCertificationWebService.PipelineCertify(CAType caType, String userName, String[] machineCertificateChain, Boolean persistent)
at Microsoft.DigitalRightsManagement.Certification.BaseCertificationWebService.Certify(CAType caType, CertifyParams requestParameters)
This issue occurs in Windows Server 2012 R2, Windows Server 2012, or Windows Server 2008 R2 Service Pack 1 (SP1) with update 2627272.