나는 X509 인증서를 Azure KeyVault (키 아래)에 저장했습니다.Azure KeyVault GetKeyAsync는 X509Certificate이 아닌 RSAParameters를 반환합니다.
keyVaultClient.GetKeyAsync(keyUrl)
을 사용하면 Keys 속성이있는 keyBundle을 반환합니다.
Keys
속성은 ToRSA()
기능을 가지고 있습니다.
RSA 객체에서 XML 문자열을 만들 수 있지만 형식은 X509Certificate2
생성자에서 rawdata로 사용할 수있는 공개 키에 대한 PEM 형식이 아닙니다.
.NET Framework에서 RSA XML에서 X509Certificate2를 만드는 방법을 찾을 수 없습니다.
엔벨로프 된 Cms 객체를 암호화하려면 X509Certificate2
객체가 필요합니다. CmsRecipient
은 생성자에 X509Certificate
이 필요합니다.
RSA
(AsymmetricAlgorithm)을 X509Certificate2
개체로 변환 할 수 있습니까?
해결 방법은 비밀 아래에 인증서를 저장할 수 있습니다. 그런 다음 주요 볼트 API가 X509Certificate rawdata를 제공하는 것으로 보이지만 한 번만 같은 인증서를 저장하려고합니다. 나는 당신은 볼트의 키와 함께 인증서를 저장해야
나는 단지 그 점을 알아 차렸다. 다른 방향으로 나아갈 수 없다. client.GetSecretAsync (secretUrl)는 X509Certificate 원시 데이터 문자열 (base64)을 전달합니다. 그 끔찍한 키 볼트 키는 RSAParameters 만 반환합니다. unwrap primitive (Cms 객체의 암호 해독) 때문에 Keys에서 인증서를 가져야합니다. 아마도 인증서 당 두 개의 저장소 - "개인"인증서를위한 키와 공개 키 - 데이터 (pem)가있는 파일 시스템을 가지고 갈 것입니다. 장기적으로는 더 싸기도합니다. 답변 해 주셔서 감사합니다. Chad – Frode