是否可以使用makecert或其他可用於生成我自己的測試證書的工具來設置密鑰使用屬性?使用Makecert設置密鑰使用屬性
我感興趣的原因是用於BizTalk Server AS2傳輸的證書需要數字簽名的密鑰用於簽名和加密/解密的數據加密或密鑰加密,我想要使用此功能。
我看到如何設置增強關鍵使用屬性與makecert,但沒有關鍵用法。
是否可以使用makecert或其他可用於生成我自己的測試證書的工具來設置密鑰使用屬性?使用Makecert設置密鑰使用屬性
我感興趣的原因是用於BizTalk Server AS2傳輸的證書需要數字簽名的密鑰用於簽名和加密/解密的數據加密或密鑰加密,我想要使用此功能。
我看到如何設置增強關鍵使用屬性與makecert,但沒有關鍵用法。
您可以使用-eku選項指定證書的密鑰使用情況。
查看詳情這裏: http://msdn.microsoft.com/en-us/library/aa386968(VS.85).aspx
-eku允許您設置*擴展*鍵用法,而不是密鑰用法。 – nlawalker 2010-06-09 20:55:08
哼,我明白了......在這種情況下,我建議你嘗試使用Openssl來生成你的證書。我不知道使用openssl的具體問題的答案,但它是一個強大的工具(在我看來比makecert更好)。我建議你在你的問題中加上「openssl」標誌,並把標題改爲「makecert/Openssl」。也許這樣你會得到更有幫助的答案。使用'makecert'來確認 – 2010-06-10 11:41:58
雖然您無法創建自簽名證書並使用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的證書,用於測試。
有關詳細信息:https://technet.microsoft.com/en-us/library/dn296456.aspx#BKMK_New
,您可以使用'-eku'來設置擴展密鑰的使用情況,但是我正在尋找一種方法來設置兩個或更多的擴展密鑰使用。 – AaA 2017-08-24 09:16:14
我認爲你正在尋找'-sky'選項 – AaA 2017-08-24 09:14:25