Fragensteller
LDAPS / KDC Certificate with Certreq private key not exportable

Frage
-
Hi,
I try to automate cert requests for LDAPS certificate. When i request the my cert template the certificates private key is exportable. But never, when I try with certreq.
This is my Inf:
[Version] Signature="$Windows NT$ [NewRequest] ; At least one value must be set in this section Subject="CN=dc01" KeySpec=1 KeyLength=4096 Exportable=TRUE ProviderType=12 RequestType=PKCS10 KeyUsage=0xa0 [RequestAttributes] CertificateTemplate="KDC_TEMPLATE" [Extensions] _continue_ = "dns=dc01&" _continue_ = "dns=dc01.mydomain.dom&" _continue_ = "dns=mydomain.dom&" _continue_ = "dns=MYDOMAIN&" _continue_ = "dns=ldap.mydomain.dom&"
Then I try
certreq -new c:\_scripts\request2.inf c:\_scripts\result.txt
certreq -config pki.mydomain.dom\myCERT-CA -submit c:\_scripts\result.txt c:\_scripts\certificate.cer
certreq -accept c:\_scripts\certificate.cerI got a powershell script to put the cert to NTDS Store.
But the private key ist never exportable when I script this, only when I use MMC an request manual.
Does anyone has an idea, what I do wrong??
Alle Antworten
-
Hi Jeffrey,
please be aware this is a Forum where professionals spent their free time to help each other - so you can not always expect a answer in 24h... :-)
as far as i can see you requested an CER File. cer Files normaly contains Public Key and not the Private Key. For Private Key you should use the PKS format.
Martin
-
Thank you Martin,
Wen I import I see it has the private key.. it is just not exportable, I can see by the symbol at Certstore..
When I export this certificate from there, it became a pfx. It is the same, as when i do this manual over MMC, my request generates an cer-file, I import.
in between I try this, but with this, I even don't get a private key.. :-D
[System.Void](& certutil -addstore -f 'MY' "c:\_scripts\certificate.cer")
[System.Void](& certutil -repairstore 'MY' "dc01.mydomain.dom") -
When I do exactly the same things, but use the mmc... i got the same certificate, but with exportable private Key, i can export form certstore an put to ntds with Powershell... no problem.
But if I use certreq, private key is never exportable..
-
I tried this .inf
I build it like this here:
[Version] Signature="$Windows NT$ [NewRequest] ; At least one value must be set in this section Subject="CN=dc01,OU=Domain Controllers,DC=mydomain,DC=dom" Friendlyname = "dc01.mydomain.dom" KeyLength = 4096 Exportable =TRUE MachineKeySet = TRUE SMIME = False PrivateKeyArchive = FALSE UserProtected = FALSE UseExistingKeySet = FALSE ProviderName = "Microsoft RSA SChannel Cryptographic Provider" ProviderType = 12 RequestType = PKCS10 KeyUsage = 0xa0 [EnhancedKeyUsageExtension] OID=1.3.6.1.5.2.3.5 OID=1.3.6.1.4.1.311.20.2.2 OID=1.3.6.1.5.5.7.3.1 OID=1.3.6.1.5.5.7.3.1 [RequestAttributes] CertificateTemplate="KDC_TEMPLATE" [Extensions] 2.5.29.17 = "{text}" _continue_ = "dns=dc01&" _continue_ = "dns=dc01.mydomain.dom&" _continue_ = "dns=mydomain.dom&" _continue_ = "dns=MYDOMAIN&" _continue_ = "dns=ldap.mydomain.dom&"
I see it generates an: certificate.cer and a certificate.rsp... Why .rsp?
-
ich hab da was gefunden...
Privater Schlüssel nicht exportierbar
Wenn man das neue Zertifikat über das MMC-Snap-in oder das Cmdlet Export-PfxCertificate exportieren möchte, dann wird man feststellen, dass die Option für den Export des privaten Schlüssels ausgegraut ist bzw. dass man einen Fehler erhält. Get-Certificate bietet nämlich keine Möglichkeit, diesen als exportierbar zu konfigurieren.
Der private Schlüssel von Zertifikaten, die mit Get-Certificate angefordert werden, lässt sich nicht exportieren.
Da der Web-Server den Private Key jedoch benötigt, muss man das Zertifikat immer von jenem Rechner aus anfordern, auf dem es dann auch genutzt wird.
-
Ja, ich gehe per Powershell Remoting auf den Rechner, der das Zertfikat braucht und fordere es von da an..und führe dort auch alles aus... Wobei es mit der MMC auch von einem anderen Rechner aus klappt.. :-D
Der Zielrechner ist Server 2019 Core..
Pardon schrieb in Englisch, weil das eigentlich im englischen Forum landen sollte.. (da gibt es halt mehr Leute..)..
Also ich schalte mich von der CA per Powershell Remoting auf den 2019 Core, erstelle den Request, fordere das LDAPS Zertifikat an, alles per Powershell/Certreq, und importiere es... private key nicht exportierbar.
Ab hier würde man, per powershell exporitieren (das klappt mäßig über Remoting) und dann mit einem Powershell script in den NTDS Speicher importieren, das klappt super.
Faktisch komme ich jetzt über die MMC der CA, verbinde die Zertifikats MMC mit dem Zielrechner, erstelle von ihm aus eine "Benutzerdefinierte Anforderung", reiche die in der CA ein, und importiere wieder über die Remote MMC. Hier alles wunderbar, private Key exportable.. :-P
Wenn man das per Script hinbekommt und erweitert, kann man sehr viele Domains, sehr schnell mit LDAPs ausstatten.. aber irgendwie mag er mich nicht.. :-(
Mein Verdacht ist, dass es an der .Inf liegt, ich komme aber nicht drauf...get-certificate scheint grundsätzlich nicht dazu in der Lage.. aber Certreq sollte das eigentlich können..
Der hier hatte dasselbe Problem, hat es aber gelöst...
https://social.technet.microsoft.com/Forums/de-DE/16eb7d00-7a74-459c-9938-2010bad2a739/certificate-request-by-certreqexe-make-private-key-exportable?forum=winserversecurityNur seine Erweiterungen der Inf passen bei mir teilweise nicht und wenn ich, wie er sagt:
[Extensions] 2.5.29.17={text} Critical=2.5.29.17
setze, dann geht gar nichts mehr..
- Bearbeitet Jeffrey Goines Donnerstag, 20. Februar 2020 14:31
-
Jup, hatte auch schon ausführlich geantwortet... :-D
Egal, ob per Powershell-Remoting, Lokal auf dem Rechner oder von einem anderen Rechner, es ist immer dasselbe Ergebnis, gehe ich über MMC ist der Key exportierbar, certreq ist er es nicht..
Ich fürchte hier kann mir niemand weiterhelfen, aber trotzdem vielen Dank dir Martin, für die Mühe!
-
Aber genau das steht doch in dem Link:
Privater Schlüssel nicht exportierbar Wenn man das neue Zertifikat über das MMC-Snap-in oder das Cmdlet Export-PfxCertificate exportieren möchte, dann wird man feststellen, dass die Option für den Export des privaten Schlüssels ausgegraut ist bzw. dass man einen Fehler erhält. Get-Certificate bietet nämlich keine Möglichkeit, diesen als exportierbar zu konfigurieren.
Sprich: das Cmdlet "Get-Certificate" bietet keine Funktion für den Privaten Schlüssel Export... du MUSST das also über einen Webrequest machen...
Leider .-(
Liebe Grüße
Martin
-
Nee irgendwie geht das am Problem vorbei.. Über das MMC Funktioniert es! Ich glaube das habe ich inzwischen auch schon öfter geschrieben. Das es bei get-Certificate nicht funktioniert ist mir ebenfalls bekannt, schrieb ich ebenfalls und deinen Link kenne ich auch; also schon vor der Frage hier. Mit Certreq soll es (Theoretisch) aber gehen, tut es aber nicht. Die Frage ist, warum nicht?