Tôi đang phát triển một ứng dụng iOS sẽ cần đọc Tên chủ đề thay thế từ chứng chỉ (.pfx).OpenSSL Lấy tên thay thế chủ đề từ chứng chỉ
Security.framework không có một cách để có được thông tin này, vì vậy bạn Tôi đang sử dụng OpenSSL (openssl-1.0.1e)
Để đọc Chủ đề Tên Tôi đang sử dụng X509_get_subject_name (giấy chứng nhận) và cho Nhà phát hành tôi đang sử dụng X509_get_issuer_name (chứng chỉ) và đang hoạt động.
Sự cố là Tên thay thế chủ đề. Tôi không thể tìm thấy bất kỳ chức năng nào để trả lại thông tin này.
Có thể sử dụng OpenSSL để lấy Tên thay thế cho chủ đề không? Làm sao?
Edit:
tôi nhập khẩu giấy chứng nhận vào MAC keychain. Trên Tên thay thế chủ đề Tôi thấy Tên chính của NT và Tên RFC 822.
tôi đã cố gắng này, nhưng nó đang trở lại NULL:
GENERAL_NAME *name = (GENERAL_NAME*)X509_get_ext_d2i(cert,NID_subject_alt_name, NULL, NULL)
Tôi đang đọc giấy chứng nhận với điều này:
X509 *cert;
CFDataRef der = SecCertificateCopyData(certificate);
const unsigned char * ptr = CFDataGetBytePtr(der);
int len = CFDataGetLength(der);
d2i_X509(&cert,&ptr,len);
Tôi đang thử điều này: (GENERAL_NAME *) X509_get_ext_d2i (cert, NID_subject_alt_name, NULL, NULL); Nhưng tôi không có. Nó có hoạt động không? – Freedom
Về lý thuyết, bạn chỉ nên nhận NULL nếu cert là NULL, chứng chỉ không có phần mở rộng tên chủ đề thay thế hoặc nhiều hơn một. Bạn có thể đăng mã tải chứng chỉ vào chứng chỉ và nội dung của chứng chỉ (hoặc đầu ra của openssl x509 -in -ext nếu bạn thích)? –
Tôi đang sử dụng X509_get_subject_name() và đang hoạt động. Tôi đã nhập chứng chỉ vào mac keychain. Về tên thay thế chủ đề tôi thấy tên chính của NT và tên RFC 822 (chúng có cùng giá trị). Có thể đó là vấn đề? – Freedom