Import-ExchangeCertificate a PrivateKeyMissing
Zvláštní věc se stala. Běžným způsobem jsem požádal o Exchange 2010 SAN certifikát.
[PS] C:\Windows\system32>$cert = New-ExchangeCertificate -GenerateRequest:$True -SubjectName "c=CZ,s=Praha,L=Praha,o=Telefonica Czech Republic a.s.,ou=Operations,cn=smtpin1.domain.local" -DomainName smtpin1.domain.local,smtpin1 -FriendlyName 'smtpin1.domain.local' -PrivateKeyExportable $true -KeySize '2048'
[PS] C:\Windows\system32>$cert | Out-File c:\temp\smtpin1.domain.local.csr
Soubor jsem vzal a požádal na CA “o štempl”. Odpověď od CA jsem přenesl opět na server a opět korektně zadal toto:
[PS] C:\Windows\system32>Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path "c:\temp\smtpin1.domain.local.cer" -Encoding byte -ReadCount 0)) | Enable-ExchangeCertificate -Services SMTP
The certificate with thumbprint 088DA250C4D2D1ACD0F362E77218904CCEB3FA42 was found but is not valid for use with Exchange Server (reason: PrivateKeyMissing).
+ CategoryInfo : NotSpecified: (:) [Enable-ExchangeCertificate], InvalidOperationException
+ FullyQualifiedErrorId : 7865D1AB,Microsoft.Exchange.Management.SystemConfigurationTasks.EnableExchangeCertificate
Když jsem si poté přes MMC.EXE přidal Certificates (Local Computer) snap-in, viděl jsem naimportovaný certifikát, ale bez privátního klíče. Ve větvi Certificate Enrollment Request vesele dlel původní certifikační požadavek obsahující privátní klíč.
Takže Google, který mne navedl na tři roky starý článek PrivateKeyMissing when running Enable-ExchangeCertificate. Pobavilo mne vysvětlení “Windows simply forgets where it placed the PrivateKey for the certificate. It doesn’t happen all the time, but sometimes the error can be a nuisance.”
Dle Option #1 jsem si zkopíroval do clipboardu SerialNumber certifikátu a poté v cmd.exe (spuštěném jako admin) zadal
C:\>certutil -repairstore my "16 8e 88 87 00 01 00 00 03 81"
nějaký text
Encryption test passed
CertUtil: -repairstore command completed successfully.
Světe, div se, obnovil jsem (Refresh) v mmc.exe Certificates (Local Computer)/Personal/Certificates, klepnu na certifikát a rázem vidím “You have a private key that corresponds to this certificate.” Pro jistotu mrknu ještě do Certificates (Local Computer)/Certificate Enrollment Request a tam je pusto, prázdno, což je správně. Uvedený příkaz si tudíž po zásluze dokumentuji, určitě ještě přijde vhod.