Tôi đang làm việc trên một số mã tạo chứng chỉ X509certificate và cặp khóa công khai/riêng tư. Khóa công khai được thêm vào chứng chỉ và nó được gửi đến một CA có ký tên.Kết hợp khóa riêng với lớp X509Certificate2 trong .net
Chứng chỉ được trả về sau đó được truy cập thông qua lớp System.Security.Cryptography.X509Certificates.X509Certificate2. Bây giờ tôi muốn sử dụng chứng chỉ này để bắt đầu kết nối an toàn với các máy khách khác. Vì vậy, tôi sử dụng lớp SslStream. Để bắt đầu Bắt tay SSL, tôi sử dụng phương pháp này:
server.AssociatedSslStream.AuthenticateAsServer(
MyCertificate, // Client Certificate
true, // Require Certificate from connecting Peer
SslProtocols.Tls, // Use TLS 1.0
false // check Certificate revocation
);
Phương pháp này yêu cầu khóa cá nhân được liên kết với chứng chỉ. Tất nhiên chứng chỉ được trả về bởi CA không chứa khóa riêng. Nhưng nó được lưu trữ dưới dạng tệp .key trên đĩa cứng. Lớp X509Certificate2 có một thuộc tính được gọi là PrivateKey mà tôi đoán sẽ kết hợp một khóa riêng với chứng chỉ, nhưng tôi không thể tìm thấy một cách để thiết lập thuộc tính này.
Có cách nào để tôi có thể kết hợp khóa cá nhân với lớp .net X509 không?
Đây là một cách tốt hơn để gói chìa khóa cá nhân và chứng với nhau, tôi đã sử dụng tùy chọn này và thấy nó là một thay thế vượt trội . – Alejandro
Nếu bạn rất tử tế để khai sáng cho chúng tôi về bản chất của ưu thế này? – sschober
không bao gồm mã cho các phương thức trợ giúp, gây phiền nhiễu khi phải tạo người dùng trên trang web bên ngoài để có quyền truy cập. –