Làm thế nào tôi có thể tìm hiểu, nơi openssl tôi cài đặt đang tìm kiếm chứng chỉ được cài đặt (đáng tin cậy)?
Bạn không thể. OpenSSL tin tưởng không có gì theo mặc định, và nó không đi tìm certs. Bạn phải hướng dẫn nó những gì để tin tưởng. Thậm chí còn có một chủ đề FAQ che nó: Why does <SSL program>
fail with a certificate verify error?:
Vấn đề này thường được chỉ định bởi các thông điệp log nói điều gì đó như "không thể nhận được giấy chứng nhận phát hành tại địa phương" hay "tự ký chứng chỉ". Khi chứng chỉ được xác minh, CA gốc phải là "đáng tin cậy" bởi OpenSSL, điều này có nghĩa là chứng chỉ CA phải được đặt trong thư mục hoặc tệp và chương trình có liên quan được định cấu hình để đọc. Chương trình OpenSSL 'xác minh' hoạt động theo cách tương tự và phát hành các thông báo lỗi tương tự: kiểm tra trang hướng dẫn chương trình xác minh (1) để biết thêm thông tin.
câu trả lời Caf là loại chính xác, nhưng OpenSSL không sử dụng nó và không có gì ở đó ...
$ grep -R X509_get_default_cert_dir *
...
crypto/x509/x509_def.c:const char *X509_get_default_cert_dir(void)
...
Ở phía trên, nhận thấy nó không hit trên bất cứ điều gì trong thư mục apps/
. apps/
là nơi tất cả các mẫu OpenSSL và tiện ích này, giống như openssl req
, openssl rsa
, openssl dsa
, openssl x509
, openssl sign
, openssl verify
vv
Sau đó:
$ cat crypto/x509/x509_def.c
...
const char *X509_get_default_cert_dir(void)
{ return(X509_CERT_DIR); }
...
$ grep -R X509_CERT_DIR *
crypto/cryptlib.h:#define X509_CERT_DIR OPENSSLDIR "/certs"
Và cuối cùng:
$ ls /usr/local/ssl/certs/
$
Giống như Tôi nói, nó không được sử dụng và không có gì ở đó cả.
Thử tìm loại hệ thống của bạn trên trang này: http://gagravarr.org/writing/openssl-certs/ others.shtml – indiv