Tôi đang sử dụng x/crypto/pkcs12 để tải tệp * .p12 được định dạng DER. Có an example in the documentation sử dụng tls.X509KeyPair
để tạo tls.Certificate
có thể được sử dụng cho ứng dụng khách HTTP.Làm thế nào để biến một x509.Certificate thành một tls.Certificate trong Go?
Điều đó hoàn hảo và hoạt động tốt. Nhưng sau đó tôi cũng muốn xác minh rằng chứng chỉ chưa hết hạn. Thư viện pkcs12
cũng có Decode function trả về chứng chỉ x509, mà tôi có thể sử dụng phương thức Verify. Điều này cũng hoạt động tốt.
Điều đó dường như kỳ quặc đối với tôi khi tôi giải mã DER hai lần. Một lần cho một số x509.Certificate
để xác minh và một lần nữa để nhận được tls.Certificate
. Tôi không biết mối quan hệ giữa hai cấu trúc chứng chỉ này, nhưng nhìn thấy khi gói tls có một hàm có tên tls.X509KeyPair nhận một số byte, không nên có một cách rõ ràng để có được một tls.Certificate từ một x509. Giấy chứng nhận hoặc visa ngược lại? Tôi đang thiếu gì?
Cảm ơn Matt. Tôi sẽ thử. Tôi có cần phải làm bất cứ điều gì với các lĩnh vực khác của tls.Certificate hoặc gọi bất kỳ chức năng, hoặc nó nên "chỉ làm việc"? Tôi nhận thấy rằng x509.Certificate.Verify() cũng trả về chuỗi. – nathany
Máy chủ TLS sẽ cần trường 'PrivateKey' được đặt thành công để hoàn thành việc bắt tay. Tôi nghĩ phần còn lại là tùy chọn. – Matt
Có vẻ như tôi cần khóa riêng tư cho khách hàng. Nhìn vào nó. tls: khóa chứng chỉ ứng dụng khách riêng tư không thực hiện crypto.Signer –
nathany