我一直在處理這個問題,我正在使用自託管的WCF服務。我剛剛取得了突破:
我在機器商店的個人文件夾中擁有證書。它過期了,我的經理髮了一個新的。這個錯誤導致新的失敗。我嘗試了谷歌的很多東西,但最終使用完全不同的解決方案解決了這個問題。
我安裝了兩個證書 - 過期的和新的。然後我用這個命令來獲取它們的列表:
certutil -store My
我得到這個輸出(信息是假的和其他證書未列出):
================ Certificate 1 ================
Serial Number: 6d
Issuer: [email protected], CN=VoiceTrust Server CA, OU=VoiceTrust Oper
ations, O=VoiceTrust
NotBefore: 03-Jan-2013 3:33 PM
NotAfter: 03-Mar-2013 3:33 PM
Subject: [email protected], CN=hornet.voicetrust.com, OU=Software Develop
ment, O=VoiceTrust eServices MENA FZ LLC, L=Dubai, C=AE
Non-root Certificate
Cert Hash(sha1): 98 5f a0 d3 11 6a 4b 64 3b db 0a a4 11 66 fc 08 28 74 7e 53
Key Container = {E5BC0912-7808-4B89-B457-31946DE5990E}
Unique container name: dfedfcc149408fb990a3bacd6d31126b_3277b2c9-9894-46d0-9b6
4-30f0d6589239
Provider = Microsoft Enhanced Cryptographic Provider v1.0
Private key is NOT exportable
Encryption test passed
================ Certificate 2 ================
Serial Number: 6d
Issuer: [email protected], CN=VoiceTrust Server CA, OU=VoiceTrust Oper
ations, O=VoiceTrust
NotBefore: 03-Nov-2013 3:33 PM
NotAfter: 03-Dec-2013 3:33 PM
Subject: [email protected], CN=hornet.voicetrust.com, OU=Software Develop
ment, O=VoiceTrust eServices MENA FZ LLC, L=Dubai, C=AE
Non-root Certificate
Cert Hash(sha1): 30 5f a0 d3 11 6a 4b 64 3b db 0a a4 11 66 fc 08 28 74 7e 53
Key Container = {E5BC0912-7808-4B89-B457-31946DE5960E}
*Unique container name:* 55edfcc149408fb990a3bacd6d31126b_3277b2c9-9894-46d0-9b6
4-30f0d6589239
Provider = Microsoft Enhanced Cryptographic Provider v1.0
Private key is NOT exportable
Encryption test passed
現在,一切似乎都不錯,但證書1已過期,如果我試圖將其綁定到端口,則證明2有效;而證書2則因錯誤1312而失敗。
令我困惑的關鍵區別是獨特容器名稱屬性。它應該代表%ProgramData%\Microsoft\Crypto\RSA\MachineKeys\
硬盤上的物理密鑰文件對於證書1,該文件在那裏,但對於證書2,沒有這樣的文件。搜索後,我在%AppData%\Microsoft\Crypto\
文件夾的子文件夾中找到了針對證書2的文件。這是用戶特定的鍵而不是機器級別鍵。令人驚訝的是,證書被導入到計算機商店,但它始終保留用戶商店的容器密鑰。
我刪除AppData文件夾下的「55edfcc149408fb990a3bacd6d31126b_3277b2c9-9894-46d0-9b64-30f0d6589239」文件並運行修復命令我在商店證書2:
certutil -repairstore My 2
這個時候,唯一容器名稱反映了'%ProgramData%\ Microsoft \ Crypto \'下正確文件夾中的文件,並且所有內容都開始工作。
希望這對某人有幫助。
您必須導入根證書和自簽名證書。那麼它的工作, –
如果其他人遇到這個問題,並在這裏的答案沒有明確回答它,底層的核心問題是需要導入的私鑰。如果您在導入證書時不*將*標記爲可導出,則不會導入私鑰並且您無法綁定它。如果您刪除它並重新導入並將其標記爲可導出,那麼它將起作用。 –