2010-06-02 23 views
18

是否可以使用makecert或其他可用於生成我自己的測試證書的工具來設置密鑰使用屬性?使用Makecert設置密鑰使用屬性

我感興趣的原因是用於BizTalk Server AS2傳輸的證書需要數字簽名的密鑰用於簽名和加密/解密的數據加密或密鑰加密,我想要使用此功能。

我看到如何設置增強關鍵使用屬性與makecert,但沒有關鍵用法。

+0

我認爲你正在尋找'-sky'選項 – AaA 2017-08-24 09:14:25

回答

-4

您可以使用-eku選項指定證書的密鑰使用情況。

查看詳情這裏: http://msdn.microsoft.com/en-us/library/aa386968(VS.85).aspx

+3

-eku允許您設置*擴展*鍵用法,而不是密鑰用法。 – nlawalker 2010-06-09 20:55:08

+1

哼,我明白了......在這種情況下,我建議你嘗試使用Openssl來生成你的證書。我不知道使用openssl的具體問題的答案,但它是一個強大的工具(在我看來比makecert更好)。我建議你在你的問題中加上「openssl」標誌,並把標題改爲「makecert/Openssl」。也許這樣你會得到更有幫助的答案。使用'makecert'來確認 – 2010-06-10 11:41:58

5

雖然您無法創建自簽名證書並使用makecert設置增強型密鑰使用參數,但我認爲可以節省每個人嘗試使用OpenSSL在Windows上生成證書的麻煩。相反,您可以使用certreq(如果您已有makecert,則可以使用該選項),並且可以根據您自己的要求設置所需的參數。

例如,它設置了一個帶有文檔加密EKU(1.3.6.1.4.1.311.80.1)和密鑰加密和數據加密的密鑰的證書。

創建一個新的文件,MyCert.inf

[Version] 
Signature = "$Windows NT$" 

[Strings] 
szOID_ENHANCED_KEY_USAGE = "2.5.29.37" 
szOID_DOCUMENT_ENCRYPTION = "1.3.6.1.4.1.311.80.1" 

[NewRequest] 
Subject = "[email protected]" 
MachineKeySet = false 
KeyLength = 2048 
KeySpec = AT_KEYEXCHANGE 
HashAlgorithm = Sha1 
Exportable = true 
RequestType = Cert 

KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE | CERT_DATA_ENCIPHERMENT_KEY_USAGE" 
ValidityPeriod = "Years" 
ValidityPeriodUnits = "1000" 

[Extensions] 
%szOID_ENHANCED_KEY_USAGE% = "{text}%szOID_DOCUMENT_ENCRYPTION%" 

正好被設置爲任何你需要的Subject

然後運行:

certreq -new MyCert.inf MyCert.cer 

這將生成公鑰(X509證書),並在計算機上安裝到您的當前用戶的個人商店。如果需要,您可以從那裏導出它。

我用它來生成一個用於加密PowerShell DSC的證書,用於測試。

Example cert

有關詳細信息:https://technet.microsoft.com/en-us/library/dn296456.aspx#BKMK_New

+0

,您可以使用'-eku'來設置擴展密鑰的使用情況,但是我正在尋找一種方法來設置兩個或更多的擴展密鑰使用。 – AaA 2017-08-24 09:16:14

相關問題