Aracılığıyla paylaş


FindPrivateKey örneği

Sertifika deposunda belirli bir X.509 sertifikasıyla ilişkili özel anahtar dosyasının konumunu ve adını bulmak zor olabilir. FindPrivateKey.exe aracı bu işlemi kolaylaştırır.

Önemli

Kullanmadan önce FindPrivateKey örneğini oluşturmanız gerekir.

X.509 sertifikaları bir Yönetici istrator veya makinedeki herhangi bir kullanıcı tarafından yüklenir. Ancak, sertifikaya farklı bir hesap altında çalışan bir hizmet tarafından erişilebilir. Örneğin, AĞ HİzMETİ hesabı.

Sertifika özgün olarak yüklenmediğinden bu hesap özel anahtar dosyasına erişemeyebilir. FindPrivateKey aracı size belirli bir X.509 Sertifikasının özel anahtar dosyasının konumunu verir. Belirli X.509 sertifikalarının özel anahtar dosyasının konumunu bildiğinizde bu dosyaya izin ekleyebilir veya izinleri kaldırabilirsiniz.

Güvenlik için sertifika kullanan örnekler, Setup.bat dosyasındaki FindPrivateKey aracını kullanır. Özel anahtar dosyası bulunduktan sonra, dosyaya uygun erişim haklarını ayarlamak için Cacls.exe gibi diğer araçları kullanabilirsiniz.

Şirket içinde barındırılan yürütülebilir dosya gibi bir kullanıcı hesabı altında bir Windows Communication Foundation (WCF) hizmeti çalıştırırken, kullanıcı hesabının dosyaya salt okunur erişimi olduğundan emin olun. Internet Information Services (IIS) altında bir WCF hizmeti çalıştırırken, hizmetin altında çalıştığı varsayılan hesaplar IIS 7 ve önceki sürümlerde AĞ HİzMETİ veya IIS 7.5 ve sonraki sürümlerde Uygulama Havuzu Kimliği'dir. Daha fazla bilgi için bkz . Uygulama Havuzu Kimlikleri.

Okuma ayrıcalıkları

İşlemin okuma ayrıcalığına sahip olmadığı bir sertifikaya erişirken aşağıdaki örneğe benzer bir özel durum iletisi görürsünüz:

System.ArgumentException was unhandled
Message="The certificate 'CN=localhost' must have a private key that is capable of key exchange. The process must have access rights for the private key."
Source="System.ServiceModel"

Bu durumda, özel anahtar dosyasını bulmak için FindPrivateKey aracını kullanın ve hizmetin altında çalıştığı işlem için erişim hakkını ayarlayın. Örneğin, bu işlem aşağıdaki örnekte gösterildiği gibi Cacls.exe aracıyla yapılabilir:

cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys\8aeda5eb81555f14f8f9960745b5a40d_38f7de48-5ee9-452d-8a5a-92789d7110b1" /E /G "NETWORK SERVICE":R

Kurallar—Komut Satırı girdileri

"[option]" isteğe bağlı bir parametre kümesini temsil eder.

"{option}" zorunlu bir parametre kümesini temsil eder.

"option1 | option2", seçenek kümeleri arasındaki bir seçimi temsil eder.

"<value>", girilecek parametre değerini temsil eder.

Kullanım

FindPrivateKey <storeName> <storeLocation> [{ {-n <subjectName>} | {-t <thumbprint>} } [-f | -d | -a]]

Where:

Parametre Açıklama
<subjectName> Sertifikanın konu adı
<thumbprint> Sertifikanın parmak izi (Bunu bulmak için Certmgr.exe aracını kullanabilirsiniz)
-f yalnızca çıktı dosyası adı
-d yalnızca çıkış dizini
-a çıktı mutlak dosya adı

Komut isteminde parametre belirtilmezse, bu bilgilerle birlikte yardım metni görüntülenir.

Örnekler

Bu örnek, geçerli kullanıcının Kişisel deposunda konu adı "CN=localhost" olan sertifikanın dosya adını bulur.

FindPrivateKey My CurrentUser -n "CN=localhost"

Bu örnek, Geçerli Kullanıcının Kişisel deposunda konu adı "CN=localhost" olan sertifikanın dosya adını bulur ve tam dizin yolunun çıkışını alır.

FindPrivateKey My CurrentUser -n "CN=localhost" -a

Bu örnek, "03 33 98 63 d0 47 e7 48 71 33 62 64 76 5c 4c 9d 42 1d 6b 52" parmak izine sahip sertifikanın dosya adını Yerel Bilgisayarın Kişisel deposunda bulur.

FindPrivateKey My LocalMachine -t "03 33 98 63 d0 47 e7 48 71 33 62 64 76 5c 4c 9d 42 1d 6b 52"