我使用SCEP爲我的web服務創建證書。成功創建證書並啓動服務器後,我嘗試通過瀏覽器訪問wsdl,該瀏覽器顯示錯誤消息,指出此應用程序不允許使用證書類型,錯誤代碼爲:sec_error_inadequate_cer_type。一位同事指出,我必須將擴展密鑰屬性中的密鑰用法更改爲「服務器認證」,並且應該在認證請求中完成。SCEP和擴展證書屬性
要創建一個新的請求,我正在使用bouncycastle。請參見下面的代碼片段:
PKCS10CertificationRequestBuilder builder = new PKCS10CertificationRequestBuilder(subject, pkInfo);
builder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_challengePassword, new DERPrintableString(challengePassword));
return builder.build(signer);
的問題是,現在我發現瞭如何像這樣添加一些請求的文檔。我想通了,唯一的一點是,最有可能我必須添加其他屬性的建設者與對象標識符「PKCSObjectIdentifiers.pkcs_9_at_extendedCertificateAttributes」:
builder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_extendedCertificateAttributes, ???);
但是什麼應該被傳遞給製造商的的addAttribute法等等請求的證書將擴展證書屬性設置爲「服務器身份驗證」?
我做了一些研究,但我沒有找到任何文檔或例子給我提供了一些有用的答案。
一些信息: 我使用JSCEP和BouncyCastle的1.48
我希望有人能指出我的解決方案。 在此先感謝。
非常感謝你。這件事情讓我感到很快樂。順便說一句。對不起,因爲我是在度假,所以今天是第一天我可以測試它。 – vik