2008-10-14 29 views
10

Tôi chạy qua một tệp CSR (Yêu cầu ký chứng chỉ) và tôi cần trích xuất một số thông tin từ nó.Làm thế nào để giải mã một tệp CSR?

Có cách để giải mã bằng .NET Framework?

+0

Có một công cụ trực tuyến tại http://www.sslshopper.com/csr-decoder.html nếu bạn chỉ muốn xem xét thủ công. – Rory

Trả lời

14

Nó không phải là .NET, nhưng để sử dụng tương tác, hãy thử các tiện ích OpenSSL. Cụ thể:

openssl req -text -in request.csr 
-4

Không có cách nào để giải mã CSR, theo thiết kế. Nếu bạn có thể, bạn có thể thay đổi các thuộc tính và đánh bại mục đích của whoe SSL.

+0

CA thường bỏ qua hầu hết thông tin trong CSR khi xác định tên để liên kết với khóa. Điều quan trọng là những gì quan trọng; các thuộc tính khác chỉ là gợi ý cho tên. – erickson

+0

tuyệt vời, đã học được điều gì đó mới mẻ hôm nay – jwmiller5

+6

Bạn * có thể * giải mã CSR, nếu không thì CA sẽ không thể xác thực và trả lại chứng chỉ. Bạn không thể thay đổi nó, vì điều đó sẽ làm cho chữ ký không hợp lệ. –

0

Hãy thử Liping Dai's website. LCLib của anh ấy có trình phân tích cú pháp ASN1 đã viết trong C#. Nó có thể giải mã CSR. Làm việc cho tôi.

1

Giải mã một CSR là dễ dàng nếu bạn sử dụng các thư viện OpenSSL.NET:

// Load the CSR file 
var csr = new X509Request(BIO.File("C:/temp/test.csr", "r")); 
OR 
var csr = new X509Request(@"-----BEGIN CERTIFICATE REQUEST-----..."); 

// Read CSR file properties 
Console.WriteLine(csr.PublicKey.GetRSA().PublicKeyAsPEM); 
Console.WriteLine(csr.Subject.SerialNumber); 
Console.WriteLine(csr.Subject.Organization); 
. 
. 
. 

loại X509Request có các tính chất để có được tất cả mọi thứ ra khỏi tập tin văn bản CSR của bạn.

Các vấn đề liên quan