Bạn nên đặt biến môi trường $ RANDFILE và/hoặc tạo $ HOME/file .rnd. (OpenSSL FAQ). (Tất nhiên, bạn nên có quyền đối với tệp đó. Các câu trả lời khác ở đây là về điều đó. Nhưng trước tiên bạn nên có tệp và tham chiếu đến nó.)
Tối đa 0.9.6 OpenSSL đã viết tệp seeding trong thư mục hiện tại trong tệp ".rnd". Ở phiên bản 0.9.6a bạn không có tệp tạo giống mặc định. OpenSSL 0.9.6b và sau đó sẽ hoạt động tương tự như 0.9.6a, nhưng sẽ sử dụng mặc định "C: \" cho HOME trên hệ thống Windows nếu biến môi trường chưa được đặt.
Nếu tệp gốc mặc định không tồn tại hoặc quá ngắn, thông báo lỗi "PRNG not seeded" có thể xảy ra.
Biến môi trường $ RANDFILE và $ HOME/.rnd chỉ được sử dụng bởi các công cụ dòng lệnh OpenSSL. Các ứng dụng sử dụng thư viện OpenSSL cung cấp các tùy chọn cấu hình riêng của chúng để xác định nguồn entropy, hãy kiểm tra tài liệu đi kèm với ứng dụng.
Hệ thống của tôi đã cho tôi vấn đề này vì tệp ".rnd" được sở hữu bởi người chủ chứ không phải người dùng của tôi. Một người dùng 'sudo chown nhanh: người dùng ~/.rnd' đã làm mọi thứ hoạt động. – HalfBrian
Tôi gặp vấn đề tương tự như OP. Tôi đã làm điều 'sudo' và nó hoạt động. Nhưng tại sao tôi vẫn có thư mục '.rnd' được nhúng bởi root trong $ HOME sau khi tạo chứng chỉ tự ký? –
Có, nếu bạn chạy từ máy chủ web php, người dùng là www-data, và bạn nên thêm "export" trước mỗi openssl: shell_exec ('export RANDFILE = ". Rnd"; openssl ecparam -genkey -name secp256k1')) – diyism